cmake-ein gemeinsames Objekt erstellen
Habe ich drei Dateien:
lib.c lib.h => sollten Sie gebaut werden als .also Datei
client.c => Dieser sollte gebaut werden, als eine ausführbare Datei.
Innerhalb des client.c habe ich auch die lib.h-Datei, so wie man die Deklarationen der Funktionen definiert, die unter lib.c
Kann mir jemand sagen, die genaue CMakeLists-Datei, die ich verwenden sollten, so dass der source-Bereich ist ordentlich mit Cmake die temporären Dateien und die-Binärdateien und-Bibliotheken (.dlls bei windows glaube ich) erzeugt, in separaten bauen und Binär-Verzeichnisse ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cmake und baut auf separaten build-Verzeichnisse per default (ich habe nicht testen Sie dieses Beispiel):
Können Sie tun:
Wäre alles unter zu bauen.
Update: Wie bereits von @chryss unten, wenn Sie wollen .also Datei generiert werden soll, sollte der Befehl sein:
mkdir build & cd build & cmake .. & make
. Wenn Sie brauchen, um super-clean-Ihr repository, löschen Sie einfach den build-Verzeichnis. Dadurch wird das generierte Zeug aus Ihren ursprünglichen Quellen.ADD_LIBRARY(mylib SHARED ${mylibSRCS})
- wie bereits erwähnt-durch @chryss unten.Diese Lösung nicht schaffen einen
.so
- Datei, sondern eine cmake-äquivalent für die weitere Integration mit cmake.Ich bin auf der Suche nach einer Lösung mit stellt den Gegenwert zu diesem:
Um eine
plugin_lib.so
können dynamisch geladen werden, mit dlopen zur Laufzeit.Die Lösung fehlt den "SHARED" - option wie folgt: