通过cmake定义预处理macros

我如何通过cmake定义预处理器variables?

等效的代码是#define foo

CMake具有用于此目的的add_definitions命令。 一个例子:

  add_definitions(-DOPENCV_VERSION=${OpenCV_VERSION}) add_definitions(-DWITH_OPENCV2) 

尽pipe它看起来非常具有编译器特定性,但是由于我们都知道并且从CMake中获得了一些技巧,所以它能够跨平台地工作。 CMake是这样一个破旧的系统。

有关此命令的更多解释,请访问: https : //cmake.org/cmake/help/latest/command/add_definitions.html

要为特定目标执行此操作,可以执行以下操作:

 target_compile_definitions(my_target PRIVATE FOO=1 BAR=1) 

你应该这样做,如果你有多个目标,你不想让他们都使用相同的标志。