私は2つの静的ライブラリのうち、共有ライブラリを構築しています。cmakeを使用して特定の場所にコンパイラコマンドライン引数を配置する方法
This answerは、私の静的ライブラリの前に-Wl,--whole-archive
を挿入することです。その後に-Wl,--no-whole-archive
を挿入します。その後、
add_library(wittyPlus SHARED empty.cpp)
target_link_libraries(wittyPlus
${wtdbosqlite}
${WT_LIBRARIES}
${DB_LIBRARIES}
${Boost_LIBRARIES}
app models
)
それはapp
とmodels
前-Wl,--whole-archive
を追加するので、私は必要なもので、それらの後-Wl,--no-whole-archive
(よう:
それでは、私は共有ライブラリのため、現時点ではcmakeの中に持っていることです標準ライブラリのインポートは共有ライブラリによってエクスポートされません)。
CMakeでこれを行う最も簡単な方法は何ですか?
追加: cmakeのは親切コンパイラの定義を削除するように、私は可能な限り標準cmakeのものを使用したいのですが、私は窓のために余分な作業を行う必要はありませんその方法は、構築します構築されているプラットフォームではサポートされていません。
null 'empty.cpp'ファイルを必要としない回避策が見つかりましたか? –
いいえ、私はいつもempty.cppを使用しています。 – matiu
実際のソースツリーを迷惑ファイルで汚染したくない場合は、 'file(WRITE empty.cpp" ")'を実行できるようです。 –