2

複数の実行可能ファイルを指定する CMakeLists.txt があります。これらのプロジェクトの 1 つのみで、静的ランタイムを使用したいと考えています。

私はここでこの解決策を見つけました:CMakeでMSVCランタイムを設定する

これには、CMAKE_CXX_FLAGS と CMAKE_C_FLAGS (およびその他) の変更が含まれます。

ただし、このようなことを行うと、すべてのプロジェクトのランタイム ライブラリが変更されます。私のテストでは、これらをどこに設定しても問題ありません。すべての設定が変更されます。

1 つのプロジェクトだけでこれを行う方法はありますか?

4

1 に答える 1

2

「静的ランタイム」実行可能ファイルに独自の CMakeLists.txt ファイルを与え、add_subdirectory.

サブディレクトリ CMakeLists.txt に設定された変数は、親スコープ内の同様の変数に影響を与えないため、/MDor/MDdフラグを parentに配置し、これらをサブディレクトリ内のorにCMAKE_<LANG>_FLAGS_<BUILD>置き換えることができます。/MT/MTd

コマンドが呼び出されたとしてもadd_subdirectory、ファイル システムの意味で実際のサブディレクトリを参照する必要はありません。独自の CMakeLists.txt を持つ他のディレクトリを参照するだけです。

于 2013-03-17T23:04:08.370 に答える