msvc版本中的链接器不匹配.有什么变通办法吗
linker mismatch in msvc version. Is there any workaround for it?
我正在尝试构建一个c++代码,该代码是VS 2010 开发的
我可以编译它,但在链接过程中,我得到了这个错误:
Error 1 error LNK2038: mismatch detected for '_MSC_VER': value '1600' doesn't match value '1700' in myfile.obj
我知道这是因为它们是用不同版本的MSVC构建的,但有没有任何方法可以将MSVC配置为使用用旧版本MSVC编译的库?
编辑1
最后,我决定安装VS2012express并用它编译代码。看起来微软不喜欢你轻易地将一个项目从一个版本的MSVC移植到另一个版本。
您有三种解决方案来解决这个问题:
- 在2012年重新编译VS2010库(但您需要源代码)。或者,如果已经有一个可用的2012图书馆(但我想你已经查过了)
- 或者你可以做:
在"项目属性"中,选择"常规",然后将"平台工具集"设置更改为"Visual Studio 2010(v100)"
- 或者,您可以将库链接为外部库
MSVC静态库在主要版本之间是二进制不兼容的(至少是那些使用Microsoft STL实现的版本):
C++标准库的实现有意破坏二进制Visual Studio版本之间的兼容性(2005、2008、2010,2012)。(来源)
您可以:
- 用同一编译器重新编译外部库
- 将代码移动到与外部库使用的编译器相同的编译器
- 动态链接外部库(.dll)
相关文章:
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- 在使用累加时,C++中的运算符+不匹配
- C++ 与操作员不匹配<<
- 在 Arduino 上使用 sscanf 会导致与 const char * 不匹配,并且返回值始终相同,尽管输入值不同
- 与'operator='不匹配(操作数类型'String'且"void")
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- C4018:类内有符号、无符号不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- RE2 不匹配非 ASCII 字符
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 模板推导:为什么函数指针模板定义在常量和/或引用时不匹配?
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- OpenSSL fips in C++ wrapper Library 如何?错误:指纹不匹配
- 为什么我的数组值与此处的全局变量不匹配?
- 与"std::运算符..."中的'operator<'不匹配。这是什么意思?
- 顶点属性大小不匹配时会发生什么情况
- msvc版本中的链接器不匹配.有什么变通办法吗
- c++ fprintf函数调用中格式/参数类型不匹配的可能后果是什么?