编译GCC 4.8.4错误(CXX_ABI 1.3.8)

时间:2017-04-18 07:21:36

标签: linux gcc

我正在尝试使用以下配置参数编译GCC版本4.8.4:

--prefix=<path to gcc src> --enable-languages=c,c++ --build=x86_64-linux-gnu

然而,当我尝试make时,我收到以下错误:

make[5]: Entering directory '/DIR/gcc/objdir/x86_64-linux
gnu/libstdc++-v3/po'
msgfmt -o de.mo ../../../../libstdc++-v3/po/de.po
msgfmt -o fr.mo ../../../../libstdc++-v3/po/fr.po
msgfmt: /DIR/gcc/objdir/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 fr.mo failed
make[5]: *** [fr.mo] Error 1
make[5]: *** Waiting for unfinished jobs....
msgfmt: /DIR/gcc/objdir/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)

尝试1:我尝试将LD_LIBRARY_PATH设置为/usr/lib/x86_64-linux-gnu/:/usr/lib/lib32/。但它似乎没有用。

尝试2:我尝试更改用于编译它的GCC版本。我使用的是版本4.7,4.5和5.这似乎也不起作用。

似乎在编译GCC时,错误的libstdc++.so.6是拉? 欢迎提出任何想法或意见。

PS:我正在使用Ubuntu 16.04和Linux内核4.4.0-62

1 个答案:

答案 0 :(得分:1)

构建gcc-4.8.4:将mpfr-3.1.3.tar.xz,gmp-6.1.0.tar.xz,mpc-1.0.3.tar.gz解压缩到gcc-4.8.4 /中。重命名为gcc-4.8.4/{mpfr/, gmp/, mpc/}

gcc需要gcc-4.8.4 /:mkdir build-gcc

之外的构建目录

!如果您在gcc-4.8.4 /中配置,则必须删除gcc-4.8.4 /,并从头开始。

cd build-gcc/

../gcc-4.8.4/configure --prefix=/usr/local/gcc484 --program-suffix=484 --enable-clocale=gnu --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --disable-multilib --disable-libstdcxx-pch --with-mpfr-include=$(pwd)/../gcc-4.8.4/mpfr/src --with-mpfr-lib=$(pwd)/mpfr/src/.libs

make

gcc-4.8.4可以使用Ubuntu 14.04构建,而不是16.04。结果:gcc48-c++_4.8.4-2ubuntu14_amd64.deb(24.4MB)https://drive.google.com/file/d/0B7S255p3kFXNeWI3N1E2MXdrVm8/view?usp=sharing

Ubuntu 16.04:gcc48,g ++ 48在某些应用程序中进行了测试,其中一个有400个c ++文件:好的。

无依赖关系,请使用sudo dpkg -i gcc48-c++_4.8.4-2ubuntu14_amd64.deb安装提供/usr/local/bin/{ gcc48, g++48 }