当前位置:  开发笔记 > 编程语言 > 正文

CMAKE_BUILD_TYPE =发布是否意味着-DNDEBUG?

如何解决《CMAKE_BUILD_TYPE=发布是否意味着-DNDEBUG?》经验,为你挑选了1个好方法。

是否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")

但请注意,许多项目会覆盖发布/调试标志,而不会保留初始设置并覆盖用户的定义.



1> usr1234567..:

是的,它是由CMake设定的.通过CMake代码显示,对于许多编译器来说,它是设置的.可能他们只为这些编译器设置它,它接受这个标志.这是GCC的一条线:

Modules/Compiler/GNU.cmake:  set(CMAKE_${lang}_FLAGS_RELEASE_INIT "-O3 -DNDEBUG")

但请注意,许多项目会覆盖发布/调试标志,而不会保留初始设置并覆盖用户的定义.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有