2016-09-25 226 views
0

我有CentOS 7.2 1511(gcc 4.8.5 20150623(Red Hat 4.8.5-4)),并且一直试图从gnu网站下载gcc 6.2.0。以下是我得到的错误:gcc编译错误6.2

checking for x86_64-pc-linux-gnu-gcc... /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include 
checking for suffix of object files... configure: error: in `/home/xxx/gcc-6.2.0/build/x86_64-pc-linux-gnu/libgcc': 
configure: error: cannot compute suffix of object files: cannot compile 
See `config.log' for more details. 
make[2]: *** [configure-stage1-target-libgcc] Error 1 
make[2]: Leaving directory `/home/xxx/gcc-6.2.0/build' 
make[1]: *** [stage1-bubble] Error 2 
make[1]: Leaving directory `/home/xxx/gcc-6.2.0/build' 
make: *** [all] Error 2 

,展望x86_64的-PC-Linux的GNU/libgcc的/的config.log文件:

configure:3435: /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include -V >&5 
xgcc: error: unrecognized command line option '-V' 
xgcc: fatal error: no input files 
compilation terminated. 
configure:3446: $? = 1 
configure:3435: /home/xxx/gcc-6.2.0/build/./gcc/xgcc -B/home/xxx/gcc-6.2.0/build/./gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -B/usr/local/x86_64-pc-linux-gnu/lib/ -isystem /usr/local/x86_64-pc-linux-gnu/include -isystem /usr/local/x86_64-pc-linux-gnu/sys-include -qversion >&5 
xgcc: error: unrecognized command line option '-qversion'; did you mean '--version'? 
xgcc: fatal error: no input files 
compilation terminated. 

发生了什么事吗?我遵循的程序为“MKDIR构建; CD构建”,然后发出如下configure命令:从(感谢奥列克克拉夫丘克)的

../configure --disable-multilib --enable-languages=c,c++ --with-system-zlib --with-default-libstdcxx-abi=gcc4-compatible 
+1

[Compilng libgcc xgcc error]可能的重复(http://stackoverflow.com/questions/16076660/compilng-libgcc-xgcc-error) –

+0

不,不是。正如你所看到的,我的错误是“-V”,-qversion,甚至在修改配置后,还有其他错误来自超出行号3600 ++。让我以菲利普方法的精神解决错误。 –

+0

配置中的错误意味着会发生,这就是配置的工作原理,它会尝试一些事情,直到找出有效的方式。真正的问题可能在以后的config.log中。 –

回答

0

随着微小的变化在误差:

Compilng libgcc xgcc error

这里下面

是我的解决方案:

--- tmp/gcc-6.2.0/libgcc/configure 2016-04-11 15:45:35.000000000 -0400 
+++ gcc-6.2.0/libgcc/configure 2016-09-25 15:59:21.611181908 -0400 
@@ -3426,26 +3426,26 @@ See \`config.log' for more details." "$L 
$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 
set X $ac_compile 
ac_compiler=$2 
-for ac_option in --version -v -V -qversion; do 
- { { ac_try="$ac_compiler $ac_option >&5" 
-case "(($ac_try" in 
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
- *) ac_try_echo=$ac_try;; 
-esac 
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" 
-$as_echo "$ac_try_echo"; } >&5 
- (eval "$ac_compiler $ac_option >&5") 2>conftest.err 
- ac_status=$? 
- if test -s conftest.err; then 
- sed '10a\ 
-... rest of stderr output deleted ... 
-   10q' conftest.err >conftest.er1 
- cat conftest.er1 >&5 
- rm -f conftest.er1 conftest.err 
- fi 
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 
- test $ac_status = 0; } 
-done 
+#for ac_option in --version -v -V -qversion; do 
+# { { ac_try="$ac_compiler $ac_option >&5" 
+#case "(($ac_try" in 
+# *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; 
+# *) ac_try_echo=$ac_try;; 
+#esac 
+#eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" 
+#$as_echo "$ac_try_echo"; } >&5 
+# (eval "$ac_compiler $ac_option >&5") 2>conftest.err 
+# ac_status=$? 
+# if test -s conftest.err; then 
+# sed '10a\ 
+#... rest of stderr output deleted ... 
+#   10q' conftest.err >conftest.er1 
+# cat conftest.er1 >&5 
+# rm -f conftest.er1 conftest.err 
+# fi 
+# $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 
+# test $ac_status = 0; } 
+#done 

cat confdefs.h - <<_ACEOF >conftest.$ac_ext 
/* end confdefs.h. */ 

所以基本上我只是忽略了所有的检查“-qversion”,“-V”等。而且,稍后在相同的配置脚本中会出现另一个“libisl”API找不到的错误。由于我自己下载了libisl源代码,并直接将其编译到/ usr/local/lib,所以似乎gcc编译没有选择新库。

因此,我在/etc/ld.so.conf文件中添加了“/ usr/local/lib”行,并在其后执行了“sudo ldconfig”。

编译无误地完成,测试看起来不错。

0

我碰到了“[stage1-bubble] Error”,因为我没有按照proper procedure来构建和安装gcc。例如,我在源目录上完成了配置

这里就是在CentOS 7工作了构建和安装GCC 7.2.0:

一些先决条件,第一:

yum install gcc-c++ 
yum install libgcc.i686 
yum install glibc-devel.i686 

下载,编译和安装:

wget ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-7.2.0/gcc-7.2.0.tar.xz 
tar -xvf gcc-7.2.0.tar.xz 
cd gcc-7.2.0 
./contrib/download_prerequisites 
cd .. 
mkdir objdir 
cd objdir 
$PWD/../gcc-7.2.0/configure --prefix=$HOME/GCC-7.2.0 --enable-languages=c,c++ 
make 
make install 

的编译可能需要几个小时,您可能需要使用-j选项。