2016-09-25 2 views
0

Ich habe CentOS 7.2 1511 (gcc 4.8.5 20150623 (Red Hat 4.8.5-4)), und habe versucht, gcc 6.2.0 zu kompilieren, wie von Gnu Website heruntergeladen. Das Folgende ist der Fehler, den ich habe:Kompilierungsfehler für 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 

und Blick in die x86_64-pc-linux-gnu/libgcc/config.log Datei:

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. 

Was geschieht hier? Ich folgte dem Verfahren "mkdir build; cd build" und gab dann den Befehl configure wie folgt:

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

Mögliche Kopie von [Compilng libgcc xgcc Fehler] (http://stackoverflow.com/questions/16076660/compilng-libgcc-xgcc-error) –

+0

Nein, nicht wirklich. Wie Sie sehen, sind meine Fehler "-V", -qversion, und selbst nach dem Ändern der Konfiguration gibt es andere Fehler, die jenseits der Zeilennummer 3600 ++ auftreten. Lasst mich den Fehler im selben Geist von Philipps Methode lösen. –

+0

Die Fehler in configure sollen passieren, so funktioniert configure, es versucht Dinge, bis es herausgefunden hat, was funktioniert. Das eigentliche Problem ist wahrscheinlich später in config.log. –

Antwort

0

Mit leichten Variation in Fehler von der (dank Oleksandr Kravchuk):

Compilng libgcc xgcc error

hier unten sind meine Lösung:

--- 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. */ 

So im wesentlichen bin ich nur zu ignorieren alle Kontrollen für „-qversion“, „V“ und vieles mehr. Außerdem wird später im selben configure-Skript ein anderer "libisl" API-Fehler nicht gefunden. Da ich den libisl-Quellcode selbst heruntergeladen und direkt in/usr/local/lib kompiliert habe, scheint die GCC-Kompilierung die neuen Bibliotheken nicht aufzunehmen.

Deshalb habe ich die Zeile "/ usr/local/lib" in die Datei /etc/ld.so.conf eingefügt und danach "sudo ldconfig" ausgeführt.

Die Kompilierung wurde ohne Fehler abgeschlossen und das Testen scheint gut zu sein.

0

Ich lief in den „[stage1-Blase] Error“ weil ich nicht die proper procedure für den Bau und gcc Installation folgte. Zum Beispiel hatte ich konfigurieren auf das Quellverzeichnis.

Hier ist, was für den Bau gearbeitet und die Installation von gcc 7.2.0 auf CentOS 7:

Einige Voraussetzungen zuerst:

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

herunterladen, bauen und installieren:

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 

Die Der Build kann mehrere Stunden dauern. Vielleicht möchten Sie die Option -j verwenden.

Verwandte Themen