2021-04-13 gcc-4.9.2安装问题记录(一)

安装gcc 4.9.2 (安装densepose遇到的坑之一)问题记录:

问题:libmpc.so.2: cannot open shared object file: No such... 该问题出现在make gcc 4.9.2时

环境:当前gcc版本=gcc-4.8.2

解决方案: 参考 https://www.codenong.com/cs107060579/,找到这几个文件将其所在位置加入.bashrc,并source .bashrc


问题:ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by............);该问题出现在我使用cmake命令时

环境:当前gcc版本=gcc-4.9.2

解决方案:参考https://blog.csdn.net/zzddada/article/details/105600627

a. 查看动态库

strings /usr/lib64/libstdc++.so.6 | grep CXXABI

结果如下:

CXXABI_1.3

CXXABI_1.3.1

CXXABI_1.3.2

CXXABI_1.3.3

发现最高版本只有1.3.3,没有1.3.9的。说明出现这些问题,是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库。

ls -l /usr/lib/libstdc++.so.6

lrwxrwxrwx. 1 root root 19 Apr 7 17:57 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.13

我们发现libstdc++.so.6是个软连接,是连接到libstdc++.so.6.0.13上的,而libstdc++.so.6.0.13是老版本的动态库。所以下面我们要做的就是将libstdc++.so.6连接到新版本的动态库上去。

b. 执行以下命令,查找编译gcc时生成的最新动态库:(有时找不到最新的动态库,可以参考方案二)

find / -name "libstdc++.so.*"

结果如下:

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/prev-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/prev-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/stage1-i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22

/usr/local/src/gcc-6.3.0/gcc-build-6.3.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6

/usr/local/lib/libstdc++.so.6.0.22

/usr/local/lib/libstdc++.so.6.0.22-gdb.py

/usr/local/lib/libstdc++.so.6

/usr/lib/libstdc++.so.6.0.13

/usr/lib/libstdc++.so.6

其中/usr/local/src/gcc-build-6.3.0是我们升级gcc时的输出目录,libstdc++.so.6.0.22就是我们的新版本的动态库。

c. 将上面的最新目录复制到/usr/lib64/目录下:

cp /usr/local/src/gcc-6.3.0/gcc-build-6.3.0/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib64/

d. 将libstdc++.so.6连接到libstdc++.so.6.0.22上去:

cd /usr/lib64

rm -rf libstdc++.so.6

ln -s libstdc++.so.6.0.22 libstdc++.so.6

————————————————

版权声明:本文为CSDN博主「Lucky@Dong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zzddada/article/details/105600627

你可能感兴趣的:(2021-04-13 gcc-4.9.2安装问题记录(一))