我认为默认配置类型可以像这样描述:
Debug : w/ debug symbols, w/o optimization
Release : w/o debug symbols, w/ optimization
RelWithDebInfo : w/ debug symbols, w/ optimization
MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries
但我需要新的:
MyConf : w/o debug symbols, w/o optimization
那么,如何创建呢?
答案 0 :(得分:6)
gcc / clang编译器配置(CMake 3.4.1
):
-g
-O3 -DNDEBUG
-O2 -g -DNDEBUG
-Os -DNDEBUG
这意味着:
+---------------+--------------+--------------+----------+ | | optimization | assert works | stripped | +---------------+--------------+--------------+----------| | Debug | no | yes | no | | Release | full | no | yes | | RelWithDebInfo| good | no | no | | MinSizeRel | size | no | yes | +---------------+--------------+--------------+----------+
所以我不同意您的MinSizeRel
说明,因为在这种情况下我认为MinSizeRel
和Release
都被删除了。
据我了解,您根本不需要额外的标记(没有-g
,-O*
或-DNDEBUG
)。对于Makefile
- 类似的生成器:
> cmake -H. -B_builds -DCMAKE_BUILD_TYPE=MyConf -DCMAKE_CXX_FLAGS_MYCONF=""
> cmake --build _builds
对于像Visual Studio这样的生成器,您需要使用CMAKE_CONFIGURATION_TYPES
(请参阅this answer):
> cmake -H. -B_builds -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebInfo;MinSizeRel;MyConf" -DCMAKE_CXX_FLAGS_MYCONF="/Od" -DCMAKE_EXE_LINKER_FLAGS_MYCONF=""
> cmake --build _builds --config MyConf