debugging 如何在VS2010中设置_ITERATOR_DEBUG_LEVEL?

cgfeq70w  于 2023-10-24  发布在  其他
关注(0)|答案(3)|浏览(147)

我们正在使用另一个供应商的库,它显然是用错误的标志编译的,即32位模式下的_ITERATOR_DEBUG_LEVEL = 0。虽然我已经向他们提交了错误报告,但我需要一个中间解决方案。我们自己不使用stl,所以我可以自由地为使用上述库的子项目更改此标志。但我不知道如何做到这一点。我尝试了一个没有工作:

/D_ITERATOR_DEBUG_LEVEL=0
> LINK : warning LNK4044: unrecognized option '/D_ITERATOR_DEBUG_LEVEL=0'; ignored 

#define _ITERATOR_DEBUG_LEVEL 0
> Nothing happens

什么是正确的语法或选项来让项目在没有检查迭代器的情况下编译?

vybvopom

vybvopom1#

找到解决办法了。
项目页面/配置属性/ C,C++ /预处理器/预处理器定义。
添加“_ITERATOR_DEBUG_LEVEL=0”在那里工作。

bejyjqdl

bejyjqdl2#

正如附加信息:项目页面/配置属性/ C,C++ /预处理器/预处理器定义,并根据目标将预处理器macro _ITERATOR_DEBUG_LEVEL设置为以下之一:

_ITERATOR_DEBUG_LEVEL = 0 // disabled (for release builds)
_ITERATOR_DEBUG_LEVEL = 1 // enabled (if _SECURE_SCL is defined)
_ITERATOR_DEBUG_LEVEL = 2 // enabled (for debug builds)
rt4zxlrg

rt4zxlrg3#

微软的这篇文章帮助我解决了这个问题:
https://learn.microsoft.com/cpp/standard-library/iterator-debug-level
在Visual Studio 2022中有一个编译器开关来设置值:
/D_ITERATOR_DEBUG_LEVEL=0

相关问题