gpt4 book ai didi

c++ - 如何针对自定义 gcc 库强制 cmake 链接

转载 作者:IT王子 更新时间:2023-10-29 00:40:33 25 4
gpt4 key购买 nike

在 cmake 生成 makefile 后,我正在尝试使用 custom gcc 编译我的程序。我已经完成了以下工作:

  1. 从源代码编译 gcc 5.2.0
  2. 将 cmake 变量 CMAKE_CXX_COMPILER 设置为自定义构建的路径,比方说 /home/user/pkgs/bin/g++
  3. 运行cmake,成功完成
  4. 运行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),但是这仅在您仅在编译它的机器上运行该程序时才有效。

关于c++ - 如何针对自定义 gcc 库强制 cmake 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33185432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com