【发布时间】:2011-05-15 23:27:12
【问题描述】:
我有一个 Visual Studio 2008 解决方案,其中包含多个项目,这些项目都在项目文件的预处理器定义设置中定义了 _HAS_ITERATOR_DEBUGGING=0。但这似乎只适用于某些项目,而其他项目仍然在启用迭代器调试的情况下进行编译。
我检查了解决方案中的每个文件,除了项目设置之外,没有任何地方定义_HAS_ITERATOR_DEBUGGING。
将#define _HAS_ITERATOR_DEBUGGING 0 添加到解决方案中每个 stdafx.h 的顶部可以解决此问题,但我想知道为什么在项目预处理器定义部分中设置它有时不起作用。有什么想法吗?
【问题讨论】:
-
我认为 Michael Burr 的回答可能涵盖了它,但也请注意,我的公司遇到了 certain bugs when you build with
_HAS_ITERATOR_DEBUGGING=0,因为我们所有的软件都是在禁用该选项的情况下构建的。微软的编译团队提到它应该在 VS2010 中修复。 -
我不喜欢必须禁用它的想法,但在大多数情况下,这个选项是病毒式的,不幸的是,我们的一个依赖项是在禁用该选项的情况下构建的。
标签: c++ visual-studio-2008 debugging