场景
平时经常遇到一些小问题,过段时间又重复遇到这个问题,但记不起来怎么解决的,所以打算把我遇到的一些问题收集起来,供以后参考。
问题一
描述
这是我在编译release版本时,出现了debug的运行库,编译时会报这警告:
MSVCRT.lib(cinitexe.obj) : warning LNK4098: 默认库“msvcrtd.lib”与其他库的使用冲突
如果用Dependency工具查看生成的动态库会发现,这个库同时依赖release跟debug的运行库,这最终会出运行错误的:
解决
这是vc运行库冲突导致,这个警告要重视。一般是因为程序跟依赖库的运行时库不一致导致的。
- 检查工程属性,点击C/C++ ->代码生成->运行时库,这里是否设置成跟依赖库一致,如我这里是要设置成release的运行库,得设置为:多线程 DLL (/MD)
- 打开工程属性,进入链接的常规,把显示进度设为/VERBOSE:LIB,如图:
- 再次编译的时候,我们能看到vs搜索的路径以及顺序,我们就能知道vs使用的库是不是我们要的,是不是链接错库了,如图:
问题二
描述
vs2005在安装到windows8后运行报存在兼容性问题,解决打2个补丁
解决
https://social.msdn.microsoft.com/Forums/ro-RO/f21eb013-03ab-446f-b7ac-53116bad6d8a/vs2005win7