Qt 5.14 MinGW 工具链中的静态库? (默认Qt安装)
Static libraries in Qt 5.14 MinGW toolchain? (default Qt installation)
刚才我注意到默认 Qt 安装附带的 MinGW 工具链,至少 Qt 5.14,附带一个 lib
目录和 libQt5*.a
个文件。这些文件是静态库吗?
我这么认为是因为:
- 它们的大小与我为发布静态编译 Qt 时得到的大小相似。
$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 构建,您有一些选择:
如果出于某种原因需要 MinGW,您可以使用 vcpkg 创建自定义 MinGW triplet。但我建议您坚持使用 MSVC。
刚才我注意到默认 Qt 安装附带的 MinGW 工具链,至少 Qt 5.14,附带一个 lib
目录和 libQt5*.a
个文件。这些文件是静态库吗?
我这么认为是因为:
- 它们的大小与我为发布静态编译 Qt 时得到的大小相似。
$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 构建,您有一些选择:
如果出于某种原因需要 MinGW,您可以使用 vcpkg 创建自定义 MinGW triplet。但我建议您坚持使用 MSVC。