我想将相同的.cpp源文件编译成两个不同的目标可执行文件,我正在使用cmake。一个将有一些仪器代码而另一个不会。这样我就可以比较仪器的开销。
我用#ifdefs分隔了检测代码,所以我想用-D标志定义一个值。
我认为这是可能的add_definitions(-DINSTRUMENT)
但看起来这适用于该目录中创建的所有可执行文件。我想知道是否有一种很好的方法只为特定的可执行目标设置定义。
答案 0 :(得分:21)
您可以将其中一个目标的COMPILE_DEFINITIONS属性设置为具有特定目标的定义:
set_target_properties (instrumented_target PROPERTIES COMPILE_DEFINITIONS "INSTRUMENT")
<强>更新强>
从CMake 2.8.11开始,您也可以将target_compile_definitions
用于相同目的。