1. ホーム
  2. c++

[解決済み】CMakeでプリプロセッサー・マクロを定義する?

2022-03-25 04:48:33

質問

CMakeでプリプロセッサー変数を定義するには?

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

解決方法は?

長い間、CMakeは add_definitions コマンドを使用します。しかし、最近では、このコマンドは、より細かいアプローチ(コンパイル定義、インクルードディレクトリ、コンパイラオプションのための別々のコマンド)に取って代わられてきています。

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

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はとてもみすぼらしいシステムですが、彼らはようやく正気を取り戻しつつあります。

コンパイラフラグに使用するコマンドについては、こちらで詳しく説明しています。 https://cmake.org/cmake/help/latest/command/add_definitions.html

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