c++ - 如何使用 mingw 在 Windows 中静态链接 qt 应用程序

标签 c++ qt

http://qt-project.org/doc/qt-4.8/deployment-windows.html说:

在我们构建应用程序之前,我们必须确保 Qt 是静态构建的。为此,请转到命令提示符并键入以下内容:

cd C:\path\to\Qt
configure -static <any other options you need>

这样做会导致:

'configure' is not recognized as an internal or external command,
operable program or batch file.

是否有任何分步指南解释如何配置我的 QT 项目以便它生成静态链接的二进制文件?

此外,本指南似乎希望用户拥有完整的 msvc 编译器,我使用的是 MinGW,所以我没有 setenv 批处理

最佳答案

确保您已经下载了 .zip variant of Qt sources (4.8.5) . .tar.gz 缺少 configure.exe,至少对于 Qt 5 是这样。

它应该可以工作了。

请注意,“静态”有两个级别:

  1. Qt 本身就是一个静态库。

  2. Qt(和您的应用程序)对 C/C++ 运行时的依赖。

由于您可能需要两者,因此您必须强制 Qt 本身静态链接到 C/C++ 运行时库。我还没有为 mingw 完成它,但它需要更改相关的 qmake.conf。此更改将传播到您使用这种经过调整的 Qt 构建的代码,因此您的应用程序将静态链接到 Qt 和 C/C++ 运行时。

使用 MSVC2012 和链接时间代码生成,在对可执行文件进行 UPX 处理后,对于使用 gui 和网络模块的小型应用程序,大小约为 3mb。只是想知道它会有多大。使用 mingw 时它可能会更大。

关于c++ - 如何使用 mingw 在 Windows 中静态链接 qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18975431/

相关文章:

c++ - 外部进程与线程和数据处理

c++ - 从类实例派生类?

c++ - 获取 QStringList 的最后一个元素

c++ - 如何拆分大型 qmainwindow 代码(如有必要)?

visual-studio-2010 - 为什么在带有 Qt 插件的 Visual Studio Qt 项目中添加自定义构建步骤会停止自动 MOC 和 UIC 步骤?

c++ - QTextedit 设置 anchor 并滚动到它

C++,pthread 执行什么和/或在哪里执行?

c++ - 我应该返回 std::strings 吗?

c++ - 静态变量 & For 循环

c++ - 将图像路径发送到另一个函数