MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

g++ kann libmongcxx (r3.0.2) nicht statisch verknüpfen, aber dynamische Verknüpfung funktioniert

Das -static Flag zwingt den Linker, nur statische Bibliotheken und keine gemeinsam genutzten Bibliotheken zu akzeptieren. Mit anderen Worten, es ist zur Laufzeit keine Abhängigkeit von dynamischen Bibliotheken erforderlich, um ausgeführt zu werden. Höchstwahrscheinlich mongocxx hat einige Abhängigkeiten. Um eine statische Verknüpfung zu erreichen, müssen die Archivversionen (.a) Ihrer Bibliotheken auf dem System vorhanden sein.

Ein weiteres mögliches Problem ist, dass die Reihenfolge der statischen Bibliotheken in der Linker-Befehlszeile eine Rolle spielt, sodass dies möglicherweise auch ein Problem darstellt, wenn eine Abhängigkeit von verschiedenen statischen Bibliotheken besteht. Der Linker verarbeitet die Bibliotheken in der Reihenfolge, in der sie in der Befehlszeile stehen, und zieht aus jeder statischen Bibliothek nur die erforderlichen Symbole (mit so vielen Informationen, wie der Linker zu diesem Zeitpunkt hat)

Verwenden Sie nm . Dadurch erhalten Sie die Symbolnamen.