Qt 5.14 MinGW 工具链中的静态库? (默认Qt安装)

Static libraries in Qt 5.14 MinGW toolchain? (default Qt installation)

刚才我注意到默认 Qt 安装附带的 MinGW 工具链,至少 Qt 5.14,附带一个 lib 目录和 libQt5*.a 个文件。这些文件是静态库吗?

我这么认为是因为:

  1. 它们的大小与我为发布静态编译 Qt 时得到的大小相似。
  2. $file ./libQt5Core.a 输出 ./libQt5Core.a: current ar archive,这与静态编译的输出相同。

如果它们确实是静态库,我如何告诉 QMake(例如编辑 .pro 文件)link 给那些而不是link正在共享吗?

Are those files static libraries?

没有。它们不是静态的。 Qt 的默认在线安装程序仅提供共享库。 *.a 文件是所谓的导入库。

导入库是一个 .a 或 .lib 库,但它只包含告诉 linker/OS 您的程序如何与 dll 交互所需的一些信息。

如果出于某些原因需要 Qt 静态 windows 构建,您有一些选择:

  • HARD 通过yourself构建整个Qt(或需要的模块)。

  • 简单 使用vcpkgvcpkg install qt5:x64-windows-static

如果出于某种原因需要 MinGW,您可以使用 vcpkg 创建自定义 MinGW triplet。但我建议您坚持使用 MSVC。