当我使用 VS2013 编译时,链接到使用 VS2010 编译的静态 .lib?

Link to a static .lib compiled with VS2010 when I'm compiling with VS2013?

本文关键字:编译 VS2010 静态 lib VS2013 链接      更新时间:2023-10-16

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

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

错误C1047:对象或库文件"…/xxx"。Lib '是由比其他对象更老的编译器;重建旧的对象库

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

多或少;是的。

一般来说,c++程序的所有部分都需要与完全相同的编译器(包括精确的编译器版本)进行编译和链接。

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

也有例外,但这是一般的经验法则。

没有标准化的c++ ABI