CMake を使用してコマンドラインから C++ プリプロセッサ マクロを定義するにはどうすればよいですか? 質問する

CMake を使用してコマンドラインから C++ プリプロセッサ マクロを定義するにはどうすればよいですか? 質問する

CMake のコマンドラインでプリプロセッサ マクロを設定しようとしています。試したことは次のとおりです。

set generator="Visual Studio 8 2005"
set params=-D MY_MACRO=1
cmake.exe -G %generator% %params% ..\some_project

MY_MACROしかし、コンパイル時に定義されておらず、CMake によって生成されたファイル内でも、CMakeCache.txt次の形式で存在する場合を除いて、名前がまったく見つかりません。

MY_MACRO:UNINITIALIZED=1

どうすればいいですか?

ベストアンサー1

良い代替案としては、CMake オプションを定義することです。

OPTION(DEFINE_MACRO "Option description" ON) # Enabled by default

条件が続きます:

IF(DEFINE_MACRO)
    ADD_DEFINITIONS(-DMACRO)
ENDIF(DEFINE_MACRO)

次に、フラグを使用して CMake のコマンド ラインからそのオプションをオン/オフにすることができます-D。例:

cmake -DDEFINE_MACRO=OFF ..

コンパイラが定義を正しく受け取っていることを確認するには、make を詳細モードで呼び出して、マクロが定義されているかどうかを確認します。

make VERBOSE=1

makeこれは、CMake オプションが変更されたときにコードが再コンパイルされるため、優れたソリューションでもあります。

おすすめ記事