c++ - 当我用 VS2013 编译时链接到用 VS2010 编译的静态 .lib?

标签 c++ visual-studio visual-studio-2010 visual-c++ visual-studio-2013

我有第三方库,它是一个静态 .lib 文件,他们告诉我是用 VS2010 编译的。我们在 VS2013 中开发我们的应用程序,需要链接到这个库。

当我们尝试时,我们得到这个错误:

error C1047: The object or library file '.../xxx.lib' was created with an older compiler than other objects; rebuild old objects and libraries

这是否意味着我们必须使用 VS2010 编译器才能链接到它? (我们无法获得库的重新编译版本)

最佳答案

或多或少;是的。

通常,C++ 程序的所有部分都需要使用完全相同的编译器(包括完全相同的编译器版本)进行编译和链接。

通常在构建不同部分时,您还需要使用相同的编译器选项。

也有异常(exception),但这是一般的经验法则。

没有标准化的 C++ ABI。

关于c++ - 当我用 VS2013 编译时链接到用 VS2010 编译的静态 .lib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207045/

相关文章:

c++ - 使用 C++ 从 MySQL 数据库获取字符串时编码错误

c++ - 将 LD_PRELOAD 添加到 CLion 中的 'run' 可执行文件

c# - Xamarin UiTest 绑定(bind) android :id?

visual-studio-2010 - Visual Studio 在哪里保存构建前/构建后脚本?

c++ - 此代码中的 Matlab 与 C++ 速度比较

c++ - std::max 函数 VS '>' 运算符中 int 和 long long int 之间的最大值

c++ - "operations.hpp"中的 OpenCV 2.4.2 编译问题

visual-studio - 当 tsconfig.json 在项目中时,保存时的 typescript 编译不起作用

c# - Azure Devops 上的 Net Core 3.0 SDK Preview 9 的 Visual Studio 构建失败

c - 在 C 中使用带有结构的指定初始值设定项