gcc 3.4.6 是我的 Synology DS413 上 gcc 的最高原生安装,因此我尝试使用它从源代码构建 5.2.0。我从 /root 使用的步骤是
tar xzf gcc-5.2.0.tar.gz
cd gcc-5.2.0
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-5.2.0/configure --prefix=$HOME/gcc-5.2.0
make
make install
构建似乎进展顺利,直到“make”结束,它在运行结束时给出了这些错误:
:
:
make[3]: Entering directory `/root/objdir/gmp'
gcc `test -f 'gen-fac_ui.c' || echo '/root/objdir/../gcc-5.2.0/gmp/'`gen-fac_ui.c -o gen-fac_ui
./gen-fac_ui 32 0 >mpz/fac_ui.h || (rm -f mpz/fac_ui.h; exit 1)
gcc `test -f 'gen-fib.c' || echo '/root/objdir/../gcc-5.2.0/gmp/'`gen-fib.c -o gen-fib
./gen-fib header 32 0 >fib_table.h || (rm -f fib_table.h; exit 1)
./gen-fib table 32 0 >mpn/fib_table.c || (rm -f mpn/fib_table.c; exit 1)
gcc `test -f 'gen-bases.c' || echo '/root/objdir/../gcc-5.2.0/gmp/'`gen-bases.c -o gen-bases
/tmp/ccdefY1e.o: In function `generate':
gen-bases.c:(.text+0x28b8): undefined reference to `log'
collect2: ld returned 1 exit status
make[3]: *** [gen-bases] Error 1
make[3]: Leaving directory `/root/objdir/gmp'
make[2]: *** [all-stage1-gmp] Error 2
make[2]: Leaving directory `/root/objdir'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/objdir'
make: *** [all] Error 2
'make install' 然后返回
make[1]: Entering directory `/root/objdir'
/bin/ash /root/objdir/../gcc-5.2.0/mkinstalldirs /root/gcc-5.2.0 /root/gcc-5.2.0
make[2]: Entering directory `/root/objdir/fixincludes'
make[2]: *** No rule to make target `install'. Stop.
make[2]: Leaving directory `/root/objdir/fixincludes'
make[1]: *** [install-fixincludes] Error 2
make[1]: Leaving directory `/root/objdir'
make: *** [install] Error 2
是什么让不开心?我是新手,所以可能会遗漏一些明显的东西。