Wie benutze ich cmake mit static Libraries?
-
Hallo!
ich würde gerne für ein etwas größeres Projekt cmake benutzen, komme aber momentan mit der CMakeLists.txt nicht klar. Die Struktur in meinem Projekt-Verzeichnis sieht grob so aus:
bin src |--- modul1 | |-- mod1.cpp | |-- mod1.hpp |--- modul2 | |-- mod2.cpp | |-- mod2.hpp |--- modul3 | |-- mod3.cpp | |-- mod3.hpp |--- modul4 | |-- mod4.cpp | |-- mod4.hpp |--- modul5 | |-- mod5.cpp | |-- mod6.hpp |--- main.cpp |--- CMakeLists.txt
In meiner CMakeLists.txt habe ich die einzelnen Verzeichnisse mit "add_subdirectory()" eingetragen und in einer "target_link_libraries()" alle Libraries der einzelnen Module angegeben.
add_executable ( testprog main.cpp ) [...] target_link_libraries ( testprog m libxml2 modul1 modul2 modul3 modul4 modul5 )
In jedem Modul-Verzeichnis existiert eine weitere CMakeLists.txt Datei mit dem folgenden Eintrag:
add_library ( modulX SHARED modulX.cpp )
Das funktioniert mit SHARED super. Aber wenn ich ein STATIC draus mache kann der Linker später die einzelnen Teile (die aber schon als modul1.a statt modul1.o angelegt werden) nicht mehr zusammen führen da die ganzen Methoden in den Libraries nicht mehr gefunden werden.
Ich bin aber auch zu blöd im Internet was brauchbares zu finden was mir weiter hilft.
Irgendjemand eine tolle Idee?
Gruß
Thorsten
-
habe das gleiche problem, ich weis es auch nicht