War*_*tin 38 c++ linker pcre visual-studio-2010 release-mode
我正在尝试将我的小应用程序从Win XP和VS 2005移植到Win 7和VS 2010.
该应用程序在调试模式下编译并运行顺利,但在发布模式下,我收到以下错误:
pcrecpp.lib(pcrecpp.obj) : error LNK2038: mismatch detected for
'_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in LoginDlg.obj
Run Code Online (Sandbox Code Playgroud)
我应该在哪里开始检查?
Ale*_*ski 36
您的应用程序正在以发布模式进行编译,但您正在链接PCRE的调试版本,该版本具有/ MTd(或类似)设置,从而导致CRT中迭代器调试级别不匹配.
在发布模式下重新编译PCRE以匹配您自己的应用程序.
VS 2010中的detect_mismatch
pragma是导致此错误发出的原因.
请参阅http://blogs.msdn.com/b/vcblog/archive/2009/06/23/stl-performance.aspx(搜索_ITERATOR_DEBUG_LEVEL)
小智 19
我有同样的错误.在我的情况下,解决方案很简单:我有一个项目A取决于另一个项目B. B在调试模式下有一个预处理器定义_DEBUG而A没有.
只需将_DEBUG添加到项目A(项目 - >属性 - > c ++ - >预处理器 - >预处理器定义),您就完成了.
归档时间: |
|
查看次数: |
56539 次 |
最近记录: |