我正在64位系统上手动构建gcc 4.8.4,该系统已经有gcc 4.6.3
问题出在构建阶段。似乎a.out
不是可执行文件。
configure: loading cache ./config.cache
checking for --enable-version-specific-runtime-libs... no
checking for --enable-generated-files-in-srcdir... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for x86_64-unknown-linux-gnu-gcc... /root/gcc/mega/./gcc/xgcc -B/root/gcc/mega/./gcc/ -B/usr/x86_64-unknown-linux-gnu/bin/ -B/usr/x86_64-unknown-linux-gnu/lib/ -isystem /usr/x86_64-unknown-linux-gnu/include -isystem /usr/x86_64-unknown-linux-gnu/sys-include
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: in `/root/gcc/mega/x86_64-unknown-linux-gnu/libgomp':
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgomp] Error 1
make[2]: Leaving directory `/root/gcc/mega'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/root/gcc/mega'
make: *** [bootstrap] Error 2
以下是有关构建本身的更多信息。
../gcc-4.8.4/configure --prefix=/usr \
--mandir=/usr/man \
--libexecdir=/usr/lib \
--enable-languages=c,c++,objc,go \
--enable-threads=posix \
--enable-__cxa_atexit \
--enable-clocale=gnu \
--enable-shared --disable-nls \
--with-x=no --with-system-zlib \
--without-cloog --without-ppl --disable-multilib
这个阶段没有问题。 make BOOT_CFLAGS='-O2 -march=native -pipe' bootstrap
以我上面提到的问题结束。
这是libgomp目录中的 config.log 文件: libgomp log
这里是gcc本身内的 config.log : gcc log