2016-08-19 2 views
0

Ich versuche, eine * .so-Datei beim Kompilieren eines C-Codes mit GCC-Compiler auf AIX-Maschine zu verknüpfen, konnte aber nicht. Die Verwendung der traditionellen Optionen -L und -l für den Pfad bzw. den Namen der .so-Bibliothek führt dazu, dass "Fehler nicht gefunden werden konnte". Die Einstellung von LD_LIBRARY_PATH hat ebenfalls nicht geholfen. Ich verstehe, dass die Verknüpfungsoptionen in AIX unterschiedlich sind. Aber ich bin nicht in der Lage, die richtigen Optionen zu verstehen. Können Sie bitte meine Abfrage mit Beispiel beantworten.AIX: Wie Verknüpfung * .so Datei in AIX mit GCC-Compiler

Danke,

Antwort

1

Verwenden Option -Wl,-brtl in der Lage sein *so* gemeinsame Objekte zu verwenden.

Edit (die erste Option ist entweder -maix32 oder -maix64 je nach Kontext):

gcc -maix32 -o example -Wl,-brtl example.c /var/tmp/lib/librequired.so 

oder

gcc -maix32 -o example -Wl,-brtl example.c -L/var/tmp/lib -lrequired 
+0

ich diese Option verwenden, bekam aber "nicht ein Kaff Datei" Fehler. Nehmen wir an, ich habe eine Bibliotheksdatei "librequired.so" im Pfad "/ var/tmp/lib" und eine C-Datei "example.c" mit der Headerdatei "example.h". Kannst du mir bitte sagen, was der komplette gcc-Befehl sein kann? Danke –

+0

@Sandeep dann ist es wahrscheinlich keine Coff-Datei. Was sagt 'file/var/tmp/lib/librequired.so'? –