代码链接:cmake-cookbook/chapter-01/recipe-07/example at master · dev-cafe/cmake-cookbook · GitHub
BUG 是告诉如G++之类的编译器在每个translation unit中定义macro NDEBUG,进而导致所有assert()都被关闭!合法取值是Debug,Release,RelWithDebInfo,MinSizeRel;,其中CONFIG就是上述构建类型名称的大写,因为我自定义了Debugs,所以编译参数集就是CMAKE_C_FLAG_DEBUGS)但是我随便设置了一个非法值,也没有报错,但是对应的编译参数集应该是空的,打印如下:(注意编译参数集的命名规则是。2、如何设置构建类型。
1、构建类型:
合法取值是Debug,Release,RelWithDebInfo,MinSizeRel;另外可以自定义,但是要设置对应的编译参数集。
详细参见Default And Custom Configurations
但是我随便设置了一个非法值,也没有报错,但是对应的编译参数集应该是空的,打印如下:(注意编译参数集的命名规则是CMAKE_<LANG>_FLAGS_<CONFIG> ,其中CONFIG就是上述构建类型名称的大写,因为我自定义了Debugs,所以编译参数集就是CMAKE_C_FLAG_DEBUGS)
2、如何设置构建类型
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
详细参见CMAKE_BUILD_TYPE
3、编译参数集中的-DNDEBUG是什么意思?
注意:CMake2.8中默认是有-DNDEBUG的文章来源:https://www.toymoban.com/news/detail-415541.html
-DNDEBUG 是告诉如G++之类的编译器在每个translation unit中定义macro NDEBUG,进而导致所有assert()都被关闭! (转自注意:CMake2.8中默认是有-DNDEBUG的_cmake ndebug_updog的博客-CSDN博客)文章来源地址https://www.toymoban.com/news/detail-415541.html
到了这里,关于学习/cmake-cookbook/chapter-01/recipe-07/example的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!