屏蔽错误:LNK2038

最近在使用Qt(VS2010编译)的过程中,需要调用COM库,在Qt中加入了QAxContainer模块,是一个LIB库,在把编译模式从Debug改为Release 后链接报告了一堆错误

-1: 错误:LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in title_widget.obj
-1: 错误:LNK1319: 42 mismatches detected     //共42个LNK2038 error

网上查资料,原因是Release编译的程序链接到了Debug编译的库上,这是VS2010版本的一个BUG。

最终在 这里 找到了有用的方法,在我的工程预编译头文件中果断加入

#define _ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH

加入后还有几个同样的错误,只好试试在所有的头文件中都加入此宏定义,果然屏蔽成功了!

对此问题的MSDN相关链接:http://msdn.microsoft.com/en-us/library/ee956429.aspx

posted @ 2014-06-18 22:04  owenlang  阅读(1274)  评论(0编辑  收藏  举报