在cmake生成makefile之后,我正在尝试使用自定义
gcc编译我的程序.我做了以下事情:
>从源代码编译gcc 5.2.0
>将cmake变量CMAKE_CXX_COMPILER设置为自定义构建的路径,假设为/ home / user / pkgs / bin / g.
> Ran cmake,它成功完成
> Ran make,它也成功完成
但是,当我尝试运行程序时,它会显示错误:
/usr/lib / x86_64-linux-gnu / libstdc .so.6:找不到版本’GLIBCXX_3.4.21′
在我看来,问题是链接到/usr/lib中的旧库,而链接应该是cutom gcc库.
我怎样才能解决这个问题?
最佳答案 问题不是CMake特有的.您可以使用GCC的所有自定义安装,它可以提供新版本的libstdc.
您可以将LD_LIBRARY_PATH更改为指向gcc安装路径
export "LD_LIBRARY_PATH=/home/user/pkgs/lib:$LD_LIBRARY_PATH"
或者您可以通过将-static-libstdc添加到您的CMAKE_CXX_FLAGS静态链接到libstdc .so.6,或者您可以将目标的rpath更改为包含/ home / user / pkgs / lib(请参阅cmake wiki on rpath)
,但这仅在您运行时有效程序只在它编译的机器上.