首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为“_MSC_VER”检测到的错误LNK2038失配:值'1700‘与xxxx.obj中的'1900’值不匹配

为“_MSC_VER”检测到的错误LNK2038失配:值'1700‘与xxxx.obj中的'1900’值不匹配
EN

Stack Overflow用户
提问于 2019-01-14 03:01:00
回答 1查看 3K关注 0票数 2

正在将我的项目从VS2012转换为in 201。但是在某些项目中,我得到了一个_MSC_VER链接器错误。在谷歌上浏览了很长时间后,我发现这个问题是由于VS2012中创建的一个库与VS2015的链接所致。

我怎样才能找出是哪个投影造成了错误?这里我引用错误:错误LNK2038错配检测到的'_MSC_VER':值'1700‘不匹配值'1900’在xxxx.obj

为“_MSC_VER”检测到的错误LNK2038失配:值'1700‘与xxxx.obj中的'1900’值不匹配

EN

回答 1

Stack Overflow用户

发布于 2019-01-14 18:48:52

这表示您的一些代码或静态库是使用Visual 2012编译器& C/C++运行时标头/库构建的,而其他代码则是使用Visual 2015编译器& C/C++运行时标头/库构建的。

虽然某些类型的链接在VisualC++(旧式C、extern "C"函数、COM接口等)版本之间是稳定的,但所有的C++链接都依赖于版本。标准C++库(a.k.a )尤其如此。标准模板库( Standard Template Library),它将内存布局从版本更改为版本,以便在运行时崩溃。

为了防止这种情况,库将_MSC_VER链接标记添加到输出代码模块中,以便在链接时捕获这些类型的不匹配。

通过设计,Visual Studio 2017/2019的C/C++运行时已与Visual Studio 2015 Update 3 C/C++ Runtime兼容,以简化采用。这不是正常的模式,2012年的VS与2015/2017/2019的VS不兼容。见这篇博客文章Microsoft

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54175280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档