建立cmake 3.X.Y所需的GCC版本

时间:2017-04-04 10:46:20

标签: gcc cmake

我正在尝试在GCC 4.9.2上编译cmake版本3.0.2,但我收到错误消息

/home/DrNo/cmake-3.0.2/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/DrNo/cmake-3.0.2/Bootstrap.cmk/cmake)
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake

我看了libstdc++.so.6中的ABI字符串(?),找不到GLIBCXX_3.4.15

$ strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

我已经尝试过cmake编译版本3.0.0,3.0.1,3.0.2和3.7.2,但都需要GLIBCXX_3.4.15,所以看起来我将不得不升级我的GCC版本系统(CentOS),我不想这样做,因为我已经在另一个系统(带有预先打包的cmake 3.0.2的Ubuntu)上使用GCC 4.9.2构建了这个项目。

是否可以安装两个GCC。最近一个用于构建cmake和GCC 4.9.2来构建项目的其余部分。

1 个答案:

答案 0 :(得分:0)

我希望您能够摆脱这个问题,我只是在此处保留此评论以备将来参考:

gcc4.1.2上编译cmake版本3.10.0时确实遇到了类似的问题。我看着自己的LD_LIBRARY_PATH,发现以前的gcc版本还有一段路。

我只是通过gcc_4.1.2/linux50_64/lib64沿setenv线将其设置为正确的路径。我学到的漂亮技巧是使用setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}/your/path/here:,它基本上将您的路径附加到变量LD_PATH_LIBRARY中的所有内容中。