Also baue ich eine gemeinsame Bibliothek, aus zwei statischen Bibliotheken.Wie setze ich Compiler-Befehlszeilenargs an bestimmten Stellen mit cmake
This answer sagt der Weg, es zu tun ist, -Wl,--whole-archive
vor meinen statischen Bibliotheken einzufügen, die -Wl,--no-whole-archive
nach ihnen.
Also, was ich habe in Cmake im Moment für die gemeinsam genutzte Bibliothek ist:
add_library(wittyPlus SHARED empty.cpp)
target_link_libraries(wittyPlus
${wtdbosqlite}
${WT_LIBRARIES}
${DB_LIBRARIES}
${Boost_LIBRARIES}
app models
)
Also, was ich brauche, ist für sie die -Wl,--whole-archive
vor app
und models
hinzufügen möchten, dann -Wl,--no-whole-archive
nach ihnen (so dass die Import von Standardbibliotheken wird nicht von der freigegebenen Lib exportiert).
Was ist der einfachste Weg, dies in CMake zu tun?
Zusatz: Also würde ich so viel wie möglich den Standard Cmake Sachen verwenden möchten, auf diese Weise muss ich die Compiler-Definitionen nicht tun, um jede zusätzliche Arbeit für Fenster baut, wie CMake freundlich entfernt die auf der zu erstellenden Plattform nicht unterstützt werden.
Haben Sie eine Arbeit gefunden, die keine leere Datei 'empty.cpp' erfordert? –
Nein, ich benutze die empty.cpp die ganze Zeit. – matiu
Ich sehe aus, als könntest du 'file (WRITE empty.cpp" ")" tun, wenn du deinen echten Quellbaum nicht mit Junk-Dateien verschmutzen willst. –