c – 如何强制cmake链接自定义gcc库

在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)
,但这仅在您运行时有效程序只在它编译的机器上.

点赞