【问题标题】:Visual Studio New Debug ConfigurationVisual Studio 新调试配置
【发布时间】:2012-10-03 15:32:56
【问题描述】:

我正在尝试配置 Visual Studio 2010,以添加 Debug 配置。

配置管理器->从活动解决方案配置开始:或项目,添加新,创建新配置,从调试复制...(如果解决方案,要么创建新配置,要么只使用调试并添加新项目配置)...

http://msdn.microsoft.com/en-us/library/kwybya3w.aspx

构建 -> 建议混合使用调试和发布的错误:

defaultlib 'LIBCMT' 与其他库的使用冲突;使用 /NODEFAULTLIB:library -> 易于修复

检测到“_ITERATOR_DEBUG_LEVEL”不匹配:值“2”与值“0”不匹配 -> 不知道如何解决。

我试图手动更改项目文件...但我不知道如何解决这个问题。

更重要的是,我不能只修复这个特定的实例 - 会有很多很多情况再次发生这种情况,那么,我做错了什么?

注意:我需要一个 DEBUG 配置才能进行单元测试 (c++),并能够将构建可执行文件与单元测试分开。

【问题讨论】:

  • 从菜单Build->Configuration Manager开始,使用Active solution configuration下的下拉菜单,选择。在对话框中,使用 Copy settings from: 下的下拉菜单,然后选择 Debug。在文本字段中添加新名称,单击确定
  • 我做到了。结果:上述构建错误。我现在刚刚从头开始重新创建了一个解决方案,结果完全相同。
  • _ITERATOR_DEBUG_LEVEL=0 似乎是一个 Release 值,您是否尝试将其更改为 2
  • 这正是问题所在,我复制了 DEBUG 结构,但最终得到了 DEBUG 和 RELEASE 的某种组合!!!!!!我怎样才能改变它?我唯一能做的就是删除“从父级或项目默认值继承”,然后手动添加所有这些值。但这不可能是“模板化”解决方案。
  • 如果将_ITERATOR_DEBUG_LEVEL=2 添加到顶部窗口,是否有效?我认为应该可以像这样“覆盖”父模板提供的值,但我有一段时间没有修改 VS。另一种解决方案是将您的模板拆分为更精细的粒度,例如,有一个 Common、Debug 和 Release 模板,您当前的模板将是 Common 模板,但随后您将 _ITERATOR_DEBUG_LEVEL 和其他此类定义移动到 Debug 和 Release具有适当设置的模板。 Debug、Release 将继承自 Common,即模板树。

标签: c++ visual-studio-2010 debugging configuration configurationmanager


【解决方案1】:

我可以在属性表中设置配置选项,我可以在其中添加类似的内容

<ItemDefinitionGroup Condition="'$(Configuration)' == 'DebugCopy'">
    <ClCompile>
      <PreprocessorDefinitions>_ITERATOR_DEBUG_LEVEL=2;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
  </ItemDefinitionGroup>

(以及我需要的任何其他默认情况下可能未设置的选项)。

这是一种覆盖我正在使用的所有项目的一些全局设置的方法,这些设置导致了我遇到的错误(主要是因为我不知道这些设置)。

【讨论】:

  • 在现有项目上设置时遇到问题,发现 C/C++ / 代码生成 / 运行时库 / 多线程调试 DLL (/MDd) 有效,但 /MD 不适用于小型测试项目。跨度>
猜你喜欢
  • 1970-01-01
  • 2012-01-10
  • 2018-12-25
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 2019-10-29
  • 2019-08-19
相关资源
最近更新 更多