本文介绍了如何创建cmake生成配置没有调试符号和没有优化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我认为默认的配置类型可以这样描述:
I think default configuration types one can describe like this:
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
创建它?
推荐答案
关于表
/ clang编译器(CMake 3.4.1
):
- 调试:
-g
- 发布:
-O3 -DNDEBUG
- RelWithDebInfo:
-O2 -g -DNDEBUG
- MinSizeRel:
-Os -DNDEBUG
- Debug:
-g
- Release:
-O3 -DNDEBUG
- RelWithDebInfo:
-O2 -g -DNDEBUG
- MinSizeRel:
-Os -DNDEBUG
这意味着:
+---------------+--------------+--------------+----------+
| | optimization | assert works | stripped |
+---------------+--------------+--------------+----------|
| Debug | no | yes | no |
| Release | full | no | yes |
| RelWithDebInfo| good | no | no |
| MinSizeRel | size | no | yes |
+---------------+--------------+--------------+----------+
我不同意你的 MinSizeRel
描述,因为在这种情况下,我认为 MinSizeRel
和
So I don't agree with your MinSizeRel
description because in this case I think both MinSizeRel
and Release
are stripped.
据我所知,没有额外的标志(没有 -g
, -O *
或 -DNDEBUG
)。
Makefile
-like generator:
As far as I understand you want no extra flags at all (no -g
, -O*
or -DNDEBUG
). For Makefile
-like generators:
> cmake -H. -B_builds -DCMAKE_BUILD_TYPE=MyConf -DCMAKE_CXX_FLAGS_MYCONF=""
> cmake --build _builds
对于像Visual Studio这样的生成器,您需要使用 CMAKE_CONFIGURATION_TYPES
(请参阅 answer):
For generators like Visual Studio you need to use CMAKE_CONFIGURATION_TYPES
(see 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
这篇关于如何创建cmake生成配置没有调试符号和没有优化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!