是否CMAKE_BUILD_TYPE=Release
隐含意味-DNDEBUG
?
如果不是:期望发生这种暗示是不合理的?
我想知道我的CMakeLists.txt中的后续CMake代码是否多余:
if (NOT CMAKE_BUILD_TYPE MATCHES Debug) add_definitions(-DNDEBUG) endif()
usr1234567.. 13
是的,它是由CMake设定的.通过CMake代码显示,对于许多编译器来说,它是设置的.可能他们只为这些编译器设置它,它接受这个标志.这是GCC的一条线:
Modules/Compiler/GNU.cmake: set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
但请注意,许多项目会覆盖发布/调试标志,而不会保留初始设置并覆盖用户的定义.
是的,它是由CMake设定的.通过CMake代码显示,对于许多编译器来说,它是设置的.可能他们只为这些编译器设置它,它接受这个标志.这是GCC的一条线:
Modules/Compiler/GNU.cmake: set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")
但请注意,许多项目会覆盖发布/调试标志,而不会保留初始设置并覆盖用户的定义.