如何编译使用从不同编译器编译的库的应用程序?

时间:2018-09-22 12:38:14

标签: c++ visual-studio qt driver mingw32

我的问题就是话题。

我目前在Qt Creator中使用 Mingw32编译器来编译我的应用程序。问题是我在应用程序中包含了 .lib静态库和头文件,这些文件是从 Visual Studio 2017 编译的。

当我进一步在Qt中运行或编译我的应用程序时。我将面对指向.lib文件的错误代码,无法识别的文件格式

我有理由怀疑:例如,我不能使用编译器1来编译从编译器2编译的其他库。

我按照此处的说明进行操作:libwdi Installation and Compilation来编译“ libwdi.lib”文件。

仅供参考,我使用Visual Studio编译.lib库(libWdi)的原因是,当我尝试从Qt5工具使用wingw32-make后,在Windows操作系统上更容易实现。之所以如此痛苦,是因为我什至无法运行./autogen.sh在Windows上为Mingw32生成makefile。

了解有关如何为Qt创建者构建可行的.lib文件的所有分步信息,包括使用 VS,mingw和交叉编译器。< / p>

1 个答案:

答案 0 :(得分:2)

如果目标库在其公共接口中使用c ++功能,则无论您经过何种处理,都可能无法使用。在这种情况下,即使是同一编译器的不同版本也经常遇到问题。

另一方面,纯C通常可以使用(在Windows非MS工具集上,至少要使用MS中间对象格式,即使编译器/链接器通常不使用它也是如此)。