我们正在使用另一家供应商的库,这显然是使用错误的标志编译的,即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
在没有检查迭代器的情况下使项目编译的正确语法或选项是什么?
答案 0 :(得分:29)
找到解决方案。
项目页面/配置属性/ C,C ++ /预处理器/预处理器定义。
在那里添加“_ITERATOR_DEBUG_LEVEL = 0”。
答案 1 :(得分:4)
正如附加信息: 项目页面/配置属性/ C,C ++ /预处理器/预处理器定义并根据目标将预处理器宏_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)