gcc - “make install”compains libstdc++.so.6 没有 GLIBCXX_3.4.15,但我在 LD_LIBRARY_PATH 中有 libstdc++.so.6 文件

标签 gcc cmake linker glibc

在 Centos 6.9 上,我正在构建 cmake 3.5.0。我已经安装了现有的 cmake 3.4.3。对于 3.5.0,我确实 make ok,然后执行了“sudo make install”。但它给了我:

/home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake)
/home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/ckim/CARLA/carla/cmake-3.5.0/Bootstrap.cmk/cmake)
make: *** [cmake_check_build_system] Error 1

但是我在$LD_LIBRARY_PATH中的/usr/lib64之前有/usr/local/lib64,并且/usr/local/lib64/libstdc++.so.6有GLIBC_3.4.15和GLIBC_3.5.21。

ckim@stph45:~/CARLA/carla/cmake-3.5.0] strings /usr/local/lib64/libstdc++.so.6 | grep GLIBC
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.3.2
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

可能是什么问题?

最佳答案

But I have /usr/local/lib64 before /usr/lib64 in $LD_LIBRARY_PATH

当您在 sudo 下运行时,GLIBC 将忽略 LD_LIBRARY_PATH 并仅使用系统路径来搜索库。

如果 GLIBC 不这样做,您可以通过将 LD_LIBRARY_PATH 指向您自己的 libc.so.6 来轻松破坏任何 setuid 程序.

解决方案:

  1. 更好:不要使用LD_LIBRARY_PATH。相反,使用适当的 -rpath= 链接器选项编译您的程序,这样它们就可以正常工作。

  2. 更糟糕的是:sudo -s。 现在按照您想要的方式设置LD_LIBRARY_PATH,然后运行make install

关于gcc - “make install”compains libstdc++.so.6 没有 GLIBCXX_3.4.15,但我在 LD_LIBRARY_PATH 中有 libstdc++.so.6 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50253710/

相关文章:

c++ - 从 MinGW 链接到 MSVC DLL

c++ - boost::unordered_map::find 根据编译器优化级别产生不同的结果,而 boost::unordered_map::insert 产生相同的结果

c - GCC 汇编内联 : Function Body with Only Inlined Assembly Code

file - 在CMake中,如何找到包含文件的目录?

iphone - 在 mac 中制作 arm 架构 c 库

linker - AVR链接器错误 "relocation truncated to fit"

c++ - 您将如何列出已编译库中包含的可用函数等?

linux - 升级 GCC 后 MySQL++ 库不工作

c++ - 无法使用 libvlc 库 (osx) 运行 C++ 程序

c++ - 如何构建使用sqlite3的ros节点?