Wenn Sie die Option `-llibary` in clang verwenden müssen

Wenn Sie die Option `-llibary` in clang verwenden müssen

Ich frage mich, ob Sie die-llibOption in Clang. Zum Beispiel:

clang -lasdf foo.c -o foo.o

wird die Bibliothek /usr/local/lib/libasdf.dylibmit verknüpfen foo.c, frage mich aber, ob es eine Möglichkeit gibt, sie nicht einbinden zu müssen, sodass sie wie andere Systembibliotheken funktioniert, wo Sie einfach etwas tun können #include <math.h>und nichts verknüpfen müssen.

Oder vielleicht ist es das, worüber sie sprechenHier:

Die libSystem-Bibliothek enthält auch Funktionen, die Sie normalerweise in libc und libm erwarten würden, RPC-Dienste und einen Namensauflöser. Da libSystem automatisch in Ihre Anwendung eingebunden wird, müssen Sie es nicht explizit zur Linkzeile des Compilers hinzufügen. Viele dieser Bibliotheken existieren zu Ihrer Bequemlichkeit als symbolische Links zu libSystem, sodass ein explizites Verknüpfen mit -lm (zum Beispiel) nicht erforderlich ist, aber auch keinen Fehler verursacht.

Antwort1

Aus der Manualpage von Apples ld, -lliban die die Option übergeben wird:

-lx Diese Option weist den Linker an, im Bibliothekssuchpfad nach libx.dylib oder libx.a zu suchen. Wenn die Zeichenfolge x die Form yo hat, wird diese Datei an denselben Stellen gesucht, jedoch ohne „lib“ voranzustellen oder „.a“ ​​oder „.dylib“ an den Dateinamen anzuhängen.

Daraus lässt sich schließen, dass es keine Möglichkeit gibt, es nicht zu verwenden, -lda das Flag dem Linker lediglich sagt, dass er nach einer Bibliothek suchen und diese dann in die ausführbare Datei einbinden soll. Es wird nicht automatisch eingebunden, da es nicht Teil der von Ihnen referenzierten libSystem-Bibliothek ist, die anscheinend die einzige automatisch verknüpfte Bibliothek unter macOS ist. Bibliotheken in /usr/local/lib/ (zumindest unter MacOS) sind keine Systembibliotheken in dem Sinne, dass sie automatisch verknüpft würden, da /usr/local/lib im Allgemeinen für vom Benutzer installierte Bibliotheken verwendet wird.

verwandte Informationen