Quindi sto costruendo una libreria condivisa, su due librerie statiche.come mettere gli argomenti della riga di comando del compilatore in punti specifici usando cmake
This answer dice che il modo per farlo è inserire prima delle mie librerie statiche, il -Wl,--no-whole-archive
dopo di loro.
Quindi quello che ho in CMake al momento per la libreria condivisa è:
add_library(wittyPlus SHARED empty.cpp)
target_link_libraries(wittyPlus
${wtdbosqlite}
${WT_LIBRARIES}
${DB_LIBRARIES}
${Boost_LIBRARIES}
app models
)
Così che cosa ho bisogno è per poter aggiungere il -Wl,--whole-archive
prima app
e models
, poi -Wl,--no-whole-archive
dopo di loro (in modo che il le importazioni di librerie standard non vengono esportate dalla lib condivisa).
Qual è il modo più semplice per farlo in CMake?
Aggiunta: Così mi piacerebbe usare la roba CMake di serie, per quanto possibile, in questo modo non c'è bisogno di fare qualsiasi lavoro extra per le finestre si basa, come CMake rimuove gentilmente le definizioni del compilatore che non sono supportati sulla piattaforma in costruzione.
Avete trovato un lavoro che non richiede un file 'empty.cpp' nullo? –
No, uso empty.cpp tutto il tempo. – matiu
Sembra che si possa fare 'file (WRITE empty.cpp" ")' se non si vuole inquinare il proprio albero dei sorgenti reale con file spazzatura. –