gpt4 book ai didi

c++ - Visual Studio 中的 _ITERATOR_DEBUG_LEVEL 错误

转载 作者:IT老高 更新时间:2023-10-28 21:47:28 25 4
gpt4 key购买 nike

我正在尝试在 Windows 7 上的 Visual Studio 2010 中编译 JRTPLIB。这是一场真正的噩梦……但我至少缩小了问题范围。

这是剩下的。

Error   3   error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in client.obj   C:\Users\Johan-bar\Documents\Visual Studio 2010\Projects\client\client\jrtplib.lib(rtpsession.obj)  client

我用谷歌搜索了很多,原因似乎是一个在 Debug模式下编译,而另一个在 Release模式下编译。

我的目标是编译一个 Release 可执行文件,因为我想在不同的计算机上进行测试。

1) 哪个不在 Release模式,JRTPLIB 或客户端(我的,正在尝试编译的那个)?

2) 如何更改 ITERATOR_DEBUG_LEVEL?两者都使用运行时库/MT 和预处理器定义 WIN32、_MT,以及我猜的默认值。

干杯

最佳答案

使用 -D_ITERATOR_DEBUG_LEVEL=0 选项编译您使用的所有内容。在 VS 2010 Release 模式下默认是这样,但有些东西仍然是用其他选项构建的,因此不兼容二进制。

在较旧的 Visual Studio 中,有 _SECURE_SCL,我不确定某些代码是否仍然可以使用它。在某处(比如在 stdafx.h 中)放置这些匹配的静态检查。

#if _ITERATOR_DEBUG_LEVEL == 0 && _SECURE_SCL != 0 
#error _SECURE_SCL != 0 when _ITERATOR_DEBUG_LEVEL == 0
#endif

如果您想查看 _ITERATOR_DEBUG_LEVEL 有什么值,那么您可以在代码中使用一些#pragma 消息来告诉您。

关于c++ - Visual Studio 中的 _ITERATOR_DEBUG_LEVEL 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4738987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com