2016-04-29 7 views
1

Beim Versuch, GNU GCC 5.3.0 zu kompilieren, erhalte ich den folgenden Fehler, wenn es versucht, libjavamath.la aufzubauen.Compiler-Fehler beim Kompilieren von GCC 5.3.0 (-Lyes/lib und -Iyes/include)

/bin/bash ../../../libtool --tag=CC --mode=link /home/borish/Downloads/gcc-build/./gcc/xgcc -B/home/borish/Downloads/gcc-build/./gcc/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ -B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem /usr/local/x86_64-unknown-linux-gnu/include -isystem /usr/local/x86_64-unknown-linux-gnu/sys-include -W -Wall -Wmissing-declarations -Wwrite-strings -Wmissing-prototypes -Wno-long-long -Iyes/include -g -O2 -module -version-info 0:0:0 -no-undefined -Lyes/lib -lgmp -avoid-version -o libjavamath.la -rpath /usr/local/lib/../lib64/gcj-5.3.0-16 gnu_java_math_GMP.lo ../../../native/jni/classpath/jcl.lo 
../../../libtool: line 5209: cd: yes/lib: No such file or directory 
libtool: link: cannot determine absolute directory name of `yes/lib' 
Makefile:403: recipe for target 'libjavamath.la' failed 

Dies ist auf einem Debian-8.4-System mit GCC 4.9.2-10 installiert. Ich glaube, ich habe alle prerequisites und Google wasn't been much help erfüllt.

Irgendwelche Gedanken?

Update:

habe ich die folgenden für das Konfigurationsskript ausführen:

../gcc-5.3.0/configure --disable-multilib --with-mpc --with-isl --with-mpfr --with-gmp 
+0

'-Lyes/lib' sieht für mich komisch aus. Offensichtlich liegt der Schlüssel zu der Frage in der 'libtool'-Datei. Woher kommt "ja/lib"? Interessant ist auch, wie der 'configure'-Befehl aussieht. –

+0

@RuslanOsmanov Es ist in mehreren der Makefiles referenziert, und erscheint häufig mit dem 'libgmp'. – andand

+0

Ich versuche es wieder ohne alle '--with-XXX' Schalter, einschließlich der' --disable-multilib' und sehe was passiert. – andand

Antwort

2

Es klingt, als hätten Sie "configure" nicht korrekt ausgeführt. Zum Beispiel:

https://software.ecmwf.int/issues/browse/SUP-676

OK, sehe ich ein Problem bereits, die "--with-Jaspis" Option, um die zu dem Präfix der "Jaspis" Installation zeigen muss, zum Beispiel

Andernfalls ist der Wert „ja“ als Präfix gesetzt ..

Zum Beispiel, wenn Sie hier:

http://www.gnu.org/software/libc/manual/html_node/Configuring-and-compiling.html

Sie werden sehen, dass ein Flag wie ‘--with-headers=directory’müssen Sie einen Verzeichnispfad eingeben. Ich vermute, das gleiche passiert mit Ihrem "-with-mpc" etc.

VORSCHLAG: Reinigen Sie Ihr Build-Verzeichnis, und (vorsichtig!) Erneut ausführen ./configure.

0

Der Täter scheint die --with-gmp, --with-mpc und --with-mpfr Schalter zu sein, wenn das configure Skript zu initiieren. Ich vermute, da libgmp eine Voraussetzung für libmpc und libmpfr ist, ein Bug Feature in der configure Skript wird die störenden -I und -L Richtlinien enthalten. Die Aufnahme einer von ihnen wird im folgenden im Stammmakefile führt

HOST_GMPLIBS = -Lyes/lib -lmpc -lmpfr -lgmp 
HOST_GMPINC = -Iyes/include 

ich dies nicht bestätigt haben, der Fall in einem anderen Makefiles zu sein, aber ich vermute, etwas Ähnliches geschieht anderswo das ist, was Ich stieß darauf, als es versuchte, libjavamath.la zu bauen.

Die Umgehung besteht darin, diese Schalter aus dem Konfigurationsaufruf zu entfernen. Sie sollten in jedem Fall enthalten sein, da das Skript configure fehlschlägt, wenn es nicht auf dem Host vorhanden ist.

+0

F: Haben Sie ein Verzeichnis namens "Ja" ???? – paulsm4

+0

@ paulsm4 Nein; Es gibt kein solches Verzeichnis auf dem Host. Es gibt eine Datei namens '/ usr/bin/yes' (http://linux.die.net/man/1/yes), aber keine Ordner. Es sieht so aus, als ob das configure-Skript basierend auf den Switches ein "Ja" eingefügt hat. – andand

+0

Yup. Hier ist ein Beispiel, wie "configure" "yes" als Präfix einfügen kann, wenn Sie kein Argument oder Fat-Finger etwas liefern: https://software.ecmwf.int/issues/browse/SUP-676. EMPFEHLUNG: putzen Sie * ALLES * und führen Sie dann ./configure erneut aus. " – paulsm4