我正在使用ROS,因此编写CMake文件。
在Qt .pro
文件中,我们可以使用:
DEFINE+=QT_NO_DEBUG_OUTPUT
我们如何在CMake文件中执行此操作?我试过了:
add_definitions(QT_NO_DEBUG_OUTPUT)
但是它给了我以下错误:
c ++:错误:QT_NO_DEBUG_OUTPUT:没有这样的文件或目录
答案 0 :(得分:1)
add_definitions
要求您根据编译器语法编写标志:在-D
的情况下(视觉上为/D
)。你应该写:
add_definitions(-DQT_NO_DEBUG_OUTPUT)
更灵活,细粒度的方法是使用target_compile_definitions
为每个目标添加定义:
add_executable(foo ...)
target_compile_definitions(foo PUBLIC QT_DEBUG_NO_OUTPUT)
请注意,此处不需要-D
。