近些年来vs更新步伐加快,深刻的感受到了技术成长学习的重要性。
另一方面,版本的更换,也带来了许多的问题。今天用2019打开以前2010的工程时就碰到了一个:
检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1900”(Clock.obj 中)
照例拜访度娘,原因是:
visual studio 2010(1600)生成的东西和visual studio 2015(1900)生成的东西“不匹配”。 多是pdb文件、库文件、包含文件等。
得到如下几种解决方案:
1.清理解决方案
重新生成
2.更改平台工具集
项目->右键属性->配置属性->常规->平台工具集。改成合适的工具集。
MS VC++ 14.0 _MSC_VER = 1900 vs2015
MS VC++ 12.0 _MSC_VER = 1800 vs2013的编译器他的平台是v120
MS VC++ 11.0 _MSC_VER = 1700 vs2012的编译器他的平台是v110
MS VC++ 10.0 _MSC_VER = 1600 Visual C++ 2010
MS VC++ 9.0 _MSC_VER = 1500 Visual C++ 2008
MS VC++ 8.0 _MSC_VER = 1400 Visual C++ 2005
3.更换附加库
如果原来附加了visual studio 2010编译的库文件(.lib),你现在想用visual studio 2019的平台工具集,就需要把这个库文件变成VS2019的。
另外,与版本有关的问题还有
1.引用库文件
由于版本迭代,WTL等也需要更新到对应的版本,因为底层函数可能做了安全性、效率、策略上的调整。
2.lib库debug与release版引用也要对应