【发布时间】:2014-04-30 21:22:05
【问题描述】:
我有一个大型 C++ 项目(20 个静态库、5 个 DLL)和某种我无法确定的内存问题。打印到 CMD 窗口太不可靠了,我在兜圈子,我觉得在调试模式下运行项目是我唯一希望确定这个 bug 所在的希望。
但是,由于 VS 中的 _ITERATOR_DEBUG_LEVEL 错误,我似乎无法在调试模式下构建我的项目。
The accepted solution seems to be to recompile everything at the same debug level。所以我尝试了这个并设法在 _ITERATOR_DEBUG_LEVEL=0 选项中编译了我所有的 DLL(这是一个巨大的蠕虫罐)。
但我仍然遇到 _ITERATOR_DEBUG_LEVEL 错误,我仍然无法在调试模式下编译我的项目。 编辑确切的错误是:
LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2'
它列出了这些文件,其中 myProject 是我要编译的项目。 projectVRPNabc.o 来自另一个使用 _ITERATOR_DEBUG_LEVEL=0 重新编译的项目
projectVRPNabc.o
myproject123.o
myproject456.o
myproject789.o
建议,帮助,好吗?
【问题讨论】:
-
确切的错误信息是什么,输出日志中它之前和之后的行是什么?在您链接的问题中,文件
client.cpp的调试级别为0,而rtpsession.cpp的调试级别为2。哪些文件是您的问题文件? -
@MooingDuck 我添加了错误,您现在可以删除您的反对票,以便我的问题可以得到其他人的帮助吗?负分会显着排斥其他人。
-
咦,为什么你的消息看起来不像另一个?您可以将输出窗口中该错误之前和之后的 5 行放入问题中吗? (如果丢失,请按 Alt+2 查看)(重命名文件夹和文件即可)
-
@MooingDuck 不。我现在正处于一个漫长的过程中,无法重新编译以检索整个错误消息。从现在开始重新编译完成的几个小时后,我可以,但那将是几个小时之后,到那时我得到答案的机会将非常低,因为问题要么倾向于立即得到答案,要么根本不得到答案(除了落后者几周或几个月后回答)。所以当我的问题最终没有得到答案时,那又如何呢?我唯一的选择就是重新询问。并且重新询问将被关闭,因为这是一个骗局。请善待。
-
对问题进行小幅编辑,例如添加额外信息,将其推到“活动”页面的顶部,这应该会让人们查看它。
标签: c++ visual-studio-2010 debugging compilation