当我用 VS2013 编译时,Link 到一个用 VS2010 编译的静态 .lib?
Link to a static .lib compiled with VS2010 when I'm compiling with VS2013?
我有第三方库,这是一个静态 .lib 文件,他们告诉我是用 VS2010 编译的。我们在 VS2013 中开发我们的应用程序,需要 link 到这个库。
当我们尝试时,我们得到这个错误:
error C1047: The object or library file '.../xxx.lib' was created with
an older compiler than other objects; rebuild old objects and
libraries
这是否意味着我们将不得不使用VS2010编译器来link呢? (我们无法获得库的重新编译版本)
或多或少;是的。
通常,C++ 程序的所有部分都需要使用完全相同的编译器(包括完全相同的编译器版本)进行编译和链接。
通常您还需要在构建不同部分时使用相同的编译器选项。
也有例外,但这是一般的经验法则。
没有标准化的 C++ ABI。
我有第三方库,这是一个静态 .lib 文件,他们告诉我是用 VS2010 编译的。我们在 VS2013 中开发我们的应用程序,需要 link 到这个库。
当我们尝试时,我们得到这个错误:
error C1047: The object or library file '.../xxx.lib' was created with an older compiler than other objects; rebuild old objects and libraries
这是否意味着我们将不得不使用VS2010编译器来link呢? (我们无法获得库的重新编译版本)
或多或少;是的。
通常,C++ 程序的所有部分都需要使用完全相同的编译器(包括完全相同的编译器版本)进行编译和链接。
通常您还需要在构建不同部分时使用相同的编译器选项。
也有例外,但这是一般的经验法则。
没有标准化的 C++ ABI。