使用 CMAKE 编译具有不同标志的同一文件
我想将相同的 .cpp 源文件编译为两个不同的目标可执行文件,并且我正在使用 cmake。一个将有一些检测代码,而另一个则没有。这样我就可以比较仪器的开销。
我用 #ifdefs 分隔了检测代码,因此我想使用 -D 标志定义一个值。我认为这是可能的
add_definitions(-DINSTRUMENT)
,但看起来这适用于在该目录中创建的所有可执行文件。我想知道是否有一个好方法来仅为特定的可执行目标设置定义。
I want to compile the same .cpp source file into two different target executables and I am using cmake. One will have some instrumentation code and the other won't. That way I can compare the overhead of instrumentation.
I have the instrumentation code separated with #ifdefs so I want to define a value using the -D flag. I see that is possible with
add_definitions(-DINSTRUMENT)
But it looks like this then applies to all the executables created in that directory. I'm wondering if there is a good way to set the definition only for a specific executable target.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以设置目标之一的 COMPILE_DEFINITIONS 属性具有特定于目标的定义:
更新:
从 CMake 2.8.11 开始,您还可以使用
target_compile_definitions
出于相同目的。You can set the COMPILE_DEFINITIONS property of one of the targets to have target-specific definitions:
Update:
Starting from CMake 2.8.11 you can also use
target_compile_definitions
for the same purpose.