本文介绍了如何创建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生成配置没有调试符号和没有优化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-23 11:00