Der Compiler erkennt die Architektur nicht

Der Compiler erkennt die Architektur nicht

Ich habe Probleme beim Kompilieren einer Bibliothek (XSB Prolog) in Ubuntu.

Ich konfiguriere und kompiliere es mit:

sudo ./configure -prefix=/usr/local/lib/
sudo ./makexsb

Dann muss ich den folgenden Befehl ausführen, um bestimmte dynamische Bibliotheken zu generieren:

sudo ./makexsb dynmodule

Es schlägt jedoch mit der folgenden Ausgabe fehl:

make -f ../config/x86_64-unknown-linux-gnu/topMakefile dynmodule

Preparing...
make[1]: Entering directory `/home/parallels/prologengines/XSB/emu'
Making XSB Shared Library /home/parallels/prologengines/XSB/config/x86_64-unknown-linux-gnu/bin/libxsb.so
gcc: error: unrecognized command line option ‘-faltivec’
make[1]: *** [xsbdynmod] Error 1

Soweit ich weiß, -faltivecist die Option nur beim Erstellen auf PowerPC-Architekturen sinnvoll. Es kann also sein, dass die richtige Architektur nicht erkannt wird. Wenn das der Fall ist, wie kann ich sicher sein, dass die Architektur richtig erkannt wird?

Antwort1

Wenn man sich ansieht build/emuMakefile.in, was config/x86_64-unknown-linux-gnu/emuMakefilebeim Ausführen configuredes Skripts erzeugt wird, ist das -faltivecFlag in Zeile 184 fest codiert, es hängt also nicht von der Zielarchitektur ab und stellt somit kein Problem der Architekturerkennung dar:

xsbdynmod::
        @echo "Making XSB Shared Library $(bindir)/libxsb.$(SHAREDLIB_EXTENSION)"
        @@LD@ -o libxsb.$(SHAREDLIB_EXTENSION) $(DYNMOD_LDFLAGS)  -faltivec -fPIC $(XSBMOD_LDFLAGS)  $(OBJS) ${ODBCOBJ} ${INTERPROLOGOBJ} -lm
        @cp libxsb.$(SHAREDLIB_EXTENSION) $(bindir) 2>/dev/null || echo ""

Sie können versuchen, es zu entfernen, indem Sie es erneut konfigurieren/kompilieren, aber möglicherweise wird auch ein Fehler angezeigt, der Ihnen vorschlägt, mit -fPIC neu zu kompilieren, um ein gemeinsames Objekt zu erstellen. Leider kann ich nicht herausfinden, wo es fehlt …

Tatsächlich scheinen dies Fehler in ihrem Build-System zu sein. Sie sollten sie möglicherweise Upstream melden.

verwandte Informationen