轉載自:http://www.cnblogs.com/weinyzhou/p/4983306.html
升級cmake時,提示“Error when bootstrapping CMake:Problem while running initial CMake”,第二次運行./bootstrap時,直接的給出了錯誤原因:
[root@localhost cmake-2.8.12.2]# ./bootstrap
---------------------------------------------
gmake: “cmake”是最新的。
/home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /home/src/cmake-2.8.12.2/Bootstrap.cmk/cmake)
---------------------------------------------
Error when bootstrapping CMake:
Problem while running initial CMake
---------------------------------------------
缺少GLIBCXX_3.4.15版本,或是更高的版本。
為了核實版本問題:
[root@localhost cmake-2.8.12.2]# 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
我們看到當前GCC版本中的確沒有GLIBCXX_3.4.15,考慮到剛安裝過新版的GCC,似乎不應該出現這樣的問題。
順著gcc安裝路徑,找到了新的libstdc++:
?
[root@localhost cmake-2.8.12.2]# strings /usr/local/lib64/libstdc++.so.6.0.20|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_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_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
這里該有的都有了,把這份軟鏈到正確的地方,就妥了。
[root@localhost cmake-2.8.12.2]# cp /usr/local/lib64/libstdc++.so.6.0.20 /usr/lib64/
[root@localhost cmake-2.8.12.2]# cd /usr/lib64/
[root@localhost lib64]# rm -f libstdc++.so.6
[root@localhost lib64]# ln -s libstdc++.so.6.0.20 libstdc++.so.6
[root@localhost lib64]# ll libstdc*
lrwxrwxrwx. 1 root root ? ? ?19 5月 ?12 13:34 libstdc++.so.6 -> libstdc++.so.6.0.20
-rwxr-xr-x. 1 root root ?987096 11月 22 02:08 libstdc++.so.6.0.13
-rwxr-xr-x. 1 root root 6700716 5月 ?12 13:33 libstdc++.so.6.0.20
此后,再進行編譯安裝就順暢了:
./bootstrap
gmake
make install ? ? ? ? ??
另一種方法:
也不用這么麻煩,既然已經更新過gcc,只要將新的版本的動態庫放在舊版的之前,即如下:
export LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH?
新版:/usr/local/lib64/
舊版:/usr/lib64/