C++ 如何在CMake文件中添加定义QT_NO_DEBUG_输出?

C++ 如何在CMake文件中添加定义QT_NO_DEBUG_输出?,c++,qt,cmake,C++,Qt,Cmake,我使用ROS,因此编写CMake文件。 在Qt.pro文件中,我们可以使用: DEFINE+=QT_NO_DEBUG_OUTPUT 我们如何在CMake文件中做到这一点?我试过: add_definitions(QT_NO_DEBUG_OUTPUT) 但它给了我以下错误: c++:错误:QT\u无\u调试\u输出:无此类文件或目录 要求您根据编译器语法编写标记:在使用-D的情况下(在visual Studio上为/D)。你应该写: add_definitions(-DQT_NO_DEBUG_

我使用ROS,因此编写CMake文件。 在Qt
.pro
文件中,我们可以使用:

DEFINE+=QT_NO_DEBUG_OUTPUT
我们如何在CMake文件中做到这一点?我试过:

add_definitions(QT_NO_DEBUG_OUTPUT)
但它给了我以下错误:

c++:错误:QT\u无\u调试\u输出:无此类文件或目录

要求您根据编译器语法编写标记:在使用
-D
的情况下(在visual Studio上为
/D
)。你应该写:

add_definitions(-DQT_NO_DEBUG_OUTPUT)
更灵活、细粒度的方法是为每个目标添加定义,包括:

请注意,此处不需要
-D

尝试此添加定义(-DQT\u NO\u DEBUG\u输出)
add_executable(foo ...)
target_compile_definitions(foo PUBLIC QT_DEBUG_NO_OUTPUT)