我正在使用gcc(Ubuntu 5.2.1-22ubuntu2)5.2.1 20151010进行编译,但我也尝试了gcc 4.1.2并且我得到了同样的错误.
对于gcc 5.2.1
strings /usr/lib / x86_64-linux-gnu / libstdc .so.6 | grep CXXABI给出
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_TM_1
CXXABI_FLOAT128
对于正在编译的编译器gcc 4.8.3
strings gcc-build/build/x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1
CXXABI_1.3
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.3
即没有1.3.8
在运行configure之前我也尝试过:
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
../gcc-4.8.3/configure --build=x86_64-linux-gnu
make
错误信息:
msgfmt -o fr.mo ../../../../gcc-4.8.3/libstdc++-v3/po/fr.po
msgfmt: gcc-build/build/x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55)
msgfmt: Makefile:460: recipe for target 'de.mo' failed
使用gcc 4.1.2进行编译时,我得到了同样的错误:
msgfmt -o fr.mo ../../../../libstdc++-v3/po/fr.po
gcc-build/gcc-4.8.3/build/x86_64-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.55)
Makefile:460: recipe for target 'de.mo' failed
使用gcc 4.1.2进行编译时,我在配置和make之前执行了以下操作
#where libraries i have compiled with gcc 4.1.2 are located i.e
export LD_LIBRARY_PATH=/opt/devtools/gcc-4.1.2/lib
#where libstdc++.so.6 is
export LIBRARY_PATH=/opt/gcc-4.1.2/lib64
strings /opt/gcc-4.1.2/lib64/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.1
CXXABI_1.3
这让我想知道CXXABI_1.3.8来自哪里.我也在改变编译器之间做了’make distclean’
解决方法:
因此,当使用较新版本的编译器构建的库与较旧版本的C库链接时,或者有时使用较新的头文件编译然后链接到较旧的C库的某些内容时,就会出现此问题.
如果安装在“新系统”上的共享库比构建代码的共享库旧,那么在将二进制文件从一个系统移动到另一个系统时,也可能会遇到类似的问题.
通常有三种合理的解决方案:
1.使用较旧的编译器重新编译违规库.
2.安装新版本的C库.
3.从源代码重建C库(使用足够新的编译器).
标签:c,linux,gcc,ubuntu
来源: https://codeday.me/bug/20190722/1503310.html