CMake でプリプロセッサマクロを定義する 質問する

CMake でプリプロセッサマクロを定義する 質問する

CMake を通じてプリプロセッサ変数を定義するにはどうすればよいですか?

同等のコードは次のようになります#define foo

ベストアンサー1

長い間、CMake にはadd_definitionsこの目的のためのコマンドしかありませんでした。しかし、CMake バージョン 3.12 (2018 年 7 月リリース) 以降、このコマンドはよりきめ細かいアプローチ (コンパイル定義、インクルード ディレクトリ、コンパイラ オプション用の個別のコマンド) に置き換えられました。

新しいコンパイル定義の追加:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})
add_compile_definitions(WITH_OPENCV2)

または:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)

これの良いところは、CMake が のために用意した粗末なトリックを回避できることですadd_definitions。CMake は非常に粗末なシステムですが、ようやく正気を取り戻しつつあります。

コンパイラ フラグに使用するコマンドの詳細については、以下を参照してください。詳しくは、こちらを参照してください。

同様に、Jim Hunziker の回答で説明されているように、ターゲットごとにこれを行うことができます。

おすすめ記事