我正在尝试使用以下配置参数编译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
答案 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 }