Auf OS X hat ld
eine praktische Option -weak-l
, die wie -l
ist, aber die Bibliothek ist "schwach" verknüpft. Wenn die lib beim Laden der ausführbaren Datei nicht gefunden wird, werden keine Fehler ausgelöst, bis das Programm tatsächlich auf ein Symbol trifft, das es nicht finden kann.Linux: Schwache Verbindung eine gesamte Bibliothek, wie OS X ld -weak-lfoo
g++ -L. -weak-lfoo -o main.out main.cpp
Gibt es ein Äquivalent Funktion im Linux ld
Befehl? Ich kann es nicht finden.
Ich versuche, diesen Fehler zu vermeiden:
./main.out: error while loading shared libraries: libfoo.so: cannot open shared object file: No such file or directory
... auch wenn libfoo.so
nicht verfügbar ist. (Ich weiß zufällig, dass - für meinen Anwendungsfall - main.out
keine Funktionen aufrufen wird, die Symbole von libfoo.so
erfordern.)