关闭

Debug & Release时遇到的问题

标签: error link 2038 vs 自
839人阅读 评论(0) 收藏 举报
分类:

1.error lnk2038检测到_ iterator_debug_level的不匹配项值0不匹配值2

这个错误是由于Release的时候引用了Debug版本的库引起。刚开始一直很疑惑,因为自己引用的库,已经是Release版本,后来才注意到,原来是Qt下的库qtmaind.lib导致,这个库是Debug版本,而其对应的Release版本的库是qtmain.lib。Ps:qtmaind.lib中的这个d代表的就是debug的意思,所以Qt库中很多都是这样成双出现也就理解了。

2.就是vs下神奇的宏变量,之前一直很疑惑这个东西是怎么来的,今天偶然间终于碰到了这个东西的一个解释,虽然可能还是不够深刻,但也够用了,现记录如下:

靠,无法截图,就文字叙述吧!

首先打开视图->属性管理器,找到项目文件,右击添加新项目属性表,如myproperty,然后双击打开,在弹出窗口中新建变量,如RCF,值就是对应的路径,如D:\rcf\include,注意这地方不要再画蛇添足加个";"了,因为在包含路径的时候经常会这样用,如$(RCF)\lib,如果加了";",那么就成了D:\rcf\include和\lib两个路径,而不是D:\rcf\include\lib。

如上设置即可设置自定义的宏。

3.Release版本下下断点办法

在Project->Properties->c/c++->General->Debug Information Format 选择 /Zi

在Project->Properties->Linker->General->Debugging 的Generate Debug Info 中选择YES

完全的断点设置需要加上:

Project->Properties->c/c++->Optimization->Optimization选择Disabled(/Od)

Project->Properties->c/c++->Optimization->Whole Program Optimization 选择No

另外可能还需要注意的是:

1.tool->option->debug->general 要求源文件与原始版本完全一致 取消打钩

2.配置属性->c/c++->常规->优化 /od.


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:56657次
    • 积分:1477
    • 等级:
    • 排名:千里之外
    • 原创:92篇
    • 转载:23篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论