我正在尝试将Windows部署和应用程序设置为静态,因此单个exe文件将在其中包含所有必需的dll。 因此,当我在PC上分发此单个exe文件时,它将运行正常。
目前,当我通过windeployqt(包括QML)发布项目时,它将整个dll和qmls带入文件夹中。因此,我需要使用QT将其结合在一起(类似于ILMerge软件)。
请指导我完成整个过程。
PS:编译器为MinGW 32b
谢谢
答案 0 :(得分:0)
Qt不提供静态版本下载。您将需要自己构建Qt。有说明可帮助您入门:
https://doc.qt.io/qt-5/build-sources.html
但是,更简单的替代方法是MXE,它将为您构建一个静态Qt:
要加快在MXE中构建Qt的速度,您应该添加:
JOBS := 4
在settings.mk
中(用系统中CPU核心的数量替换“ 4”。)要仅构建静态库(这是您想要的),请将MXE_TARGETS
更改为:
MXE_TARGETS := i686-w64-mingw32.static
settings.mk
最初不存在。运行:
make check-requirements
创建它。
您应仔细遵循https://mxe.cc上的说明。如果一切似乎都正常,那么您可以这样做:
make qtbase
构建工具链。这将构建GCC,Qt所需的所有库,然后构建Qt本身。初始设置需要一段时间,因为它需要构建所有内容。
MXE需要Linux,macOS或Windows的Linux子系统。我推荐Linux。使用MXE,您通常可以使用官方的Qt开发应用程序,但是当您要构建应用程序的发行版时,可以使用MXE工具链来构建它,该工具链提供了Qt的静态版本。
Qt只是MXE提供的一个库。它还提供了许多其他库的静态构建。
答案 1 :(得分:0)
在检查了提到的选项后,我发现可视化的here, 这是很简单的方法,但是很费时间...
对于以后的谷歌搜索者来说只有一点,不要忘记修复sqlite参数,否则,长达7小时的过程将陷入中间,您将不得不像我一样重新开始:)