Ich habe ein Projekt in meiner IDE. Ich muss eine gemeinsame Bibliothek davon erstellen, um sie in Erweiterungen zu verwenden. Ich möchte keine Kopie dieses Projekts mit Shared-Library-Einstellungen erstellen. Gibt es eine Möglichkeit, eine gemeinsam genutzte Bibliothek mithilfe der Objektdateien (.o) aus meinem bereits vorhandenen Projekt zu erstellen? Soweit ich weiß, kann ich dafür ein Makefile schreiben.
Ich nehme an, Sie sind auf einer Art Unix und verwenden wahrscheinlich die GNU-Toolchain. Um in diesem Fall eine geeignete gemeinsam genutzte Bibliothek zu erstellen, müssen Sie Ihren Code mithilfe der positionsunabhängigen Code-Flags (-fpic oder -fPIC) kompilieren, bevor Sie eine gemeinsam genutzte Bibliothek erstellen können. Wenn Ihre .o-Dateien nicht bereits mit diesen Flags kompiliert sind, besteht die Möglichkeit, dass Sie nicht mit einer funktionierenden, gemeinsam genutzten Bibliothek arbeiten.
Wenn sie bereits für positionsunabhängigen Code kompiliert wurden, sollte das übliche g++ -shared ...
den Trick machen.
Tags und Links c++ shared-libraries makefile