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

时间:2015-10-17 10:20:23

标签: c++ linux gcc cmake

在cmake生成makefile之后,我尝试使用自定义 gcc编译我的程序。我做了以下事情:

  1. 从源代码
  2. 编译gcc 5.2.0
  3. 将cmake变量CMAKE_CXX_COMPILER设置为自定义构建的路径,让我们说/home/user/pkgs/bin/g++
  4. Ran cmake,它成功完成
  5. Ran make,它也成功完成
  6. 然而,当我试图运行程序时,它会显示错误:   /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found

    在我看来,问题在于链接到/usr/lib中的旧库,而链接应该用于cutom gcc库。

    我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

问题并非针对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) ,但是这样仅在您编译的机器上运行程序时才有效。