CMAKEでCFLAGSをCMAKE_C_FLAGSで設定します。 LDFLAGSを設定するには、このようなものがありますか?
それはあなたが望むものに少し依存します:
A)リンクするライブラリを指定する場合は、 find_library を使用してライブラリを検索し、次に link_directories および target_link_libraries を使用します。
もちろん、 add_library(YourLib IMPORTED) を使用して「インポートされた」ライブラリーを適切に追加する、適切な find_package スクリプトを記述することは、しばしば努力する価値があります。特定のプリおよびサフィックスを作成します。その後、単に「YourLib」を参照して、target_link_librariesを使用できます。
B)特定のリンカーフラグを指定したい場合、例えばMinGW-GCCで「-mthreads」または「-Wl、-export-all-symbols」を使用する場合は、 CMAKE_EXE_LINKER_FLAGS を使用できます。また、モジュール用の2つの類似した、ただしドキュメント化されていないフラグ、共有ライブラリまたは静的ライブラリがあります。
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
見る:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
everyリンクにフラグを追加する場合、例: _-fsanitize=address
_なら、_CMAKE_*_LINKER_FLAGS
_の使用はお勧めしません。それらがすべて設定されていても、OSX上のフレームワークをリンクするとき、およびおそらく他の状況ではフラグを使用しません。代わりにlink_libraries()
を使用してください:
_add_compile_options("-fsanitize=address")
link_libraries("-fsanitize=address")
_
これはすべてに有効です。
target_link_libraries でリンカーフラグを指定できます。
ライブラリに対するリンクについては、 Andreの答え を参照してください。
リンカーフラグの場合-次の4つのCMake変数:
CMAKE_EXE_LINKER_FLAGS
CMAKE_MODULE_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS
CMAKE_STATIC_LINKER_FLAGS
cm_add_linker_flags マクロの cm を使用すると、さまざまな設定(デバッグ、リリース...)で簡単に操作できます。