【问题标题】:how can I staticaly link qt application in windows using mingw如何使用 mingw 在 Windows 中静态链接 qt 应用程序
【发布时间】:2013-09-24 07:27:20
【问题描述】:

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 批处理

【问题讨论】:

  • 我通过CygwinMinGW 从源代码构建了Qtconfigure 在那里可用。
  • 我下载了预编译的 qt 安装 .msi 文件...所以我应该尝试在 msys 窗口中执行此操作吗?
  • 预编译的QtMinGW 有效吗?对于MinGW,我必须从头开始构建Qt。我安装了Cygwin 环境,configure 工具在那里可用。我想msys 也可以使用它,但我不确定。
  • 如果从头开始构建它,我可以将 Qt Project 的链接传递给您,他们会在其中解释如何执行此操作。哦!我建了Qt 4.8.1,为新的Qt 5,不知道流程会不会一样。
  • 您还需要使用 MinGW 构建 Qt。请参阅this(MinGW 有一些工具可以将 VS dll 转换为 MinGW,这可能会有所帮助)。您必须下载 Qt 源代码并使用 MinGW 编译器从头开始构建它们

标签: c++ qt


【解决方案1】:

确保您已下载.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-ing 可执行文件后,对于使用 gui 和网络模块的小型应用程序,大小约为 3mb。只是想知道它会有多大。使用mingw时可能会更大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多