我将项目从VS2010转换为VS2012,但是在某些项目中出现_MSC_VER链接器错误。经过长时间的谷歌浏览后,我发现问题是由于在VS2010中创建的库与VS2012的链接所致。我如何找出哪个项目导致了错误?在这里,我引用错误:Error 6 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile2.obj) Projectname2Error 15 error LNK2001: unresolved external symbol "private: static void __cdecl std::locale::facet::_Facet_Register(class std::locale::facet *)" (?_Facet_Register@facet@locale@std@@CAXPAV123@@Z) D:\ProjectLocation\Projectname1.lib(CppFile3.obj) Projectname2Error 13 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile4.obj) Projectname2Error 12 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile5.obj) Projectname2Error 10 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile6.obj) Projectname2Error 11 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile7.obj) Projectname2Error 9 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile8.obj) Projectname2Error 4 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile9.obj) Projectname2Error 14 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in CppFile1.obj D:\ProjectLocation\Projectname1.lib(CppFile10.obj) Projectname2
3 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
您正在尝试链接由不同版本的编译器编译的对象。VS的现代版本不支持该功能,至少在使用C ++标准库的情况下不支持。标准库的不同版本是二进制不兼容的,因此您需要使用相同版本来编译链接器的所有输入。确保重新编译所有要链接的对象。
编译器错误为涉及的对象命名,因此问题已找到所需信息的信息。具体来说,似乎您要链接的静态库需要重新编译。
因此,解决方案是使用VS2012重新编译Projectname1.lib。
慕桂英4014372
TA贡献1871条经验 获得超13个赞
对于解决方案中的每个项目,请确保
属性>配置。属性>常规>平台工具集
适用于所有人,v100适用于Visual Studio 2010,v110适用于Visual Studio 2012
您还可能正在使用Visual Studio 2012中的v100
- 3 回答
- 0 关注
- 1210 浏览
添加回答
举报
0/150
提交
取消