2016-09-25 175 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選項。