我一直在尝试在 Linux 中编译 .pro 文件以制作 Windows 可执行文件,这真是太难了。我读完了世界上所有关于使用 mingw 的链接,但至今没有任何一个能奏效。我是不是漏掉了什么,或者有没有人能提供关于如何做到这一点的很好的分步说明?
Ubuntu 14.04.2 QT 4.8
答案1
对于 QT4
以下步骤取自堆栈溢出,如果使用 qt4 进行构建可行,请务必给他们点赞。
只需使用M 跨环境 (MXE). 它消除了整个过程的痛苦:
得到它:
git clone https://github.com/mxe/mxe.git
为 Windows 构建 Qt、其依赖项以及交叉构建工具;这在具有良好互联网接入的快速机器上大约需要一个小时;下载内容约为 500MB:
cd mxe && make qt
转到应用程序的目录并将交叉构建工具添加到 PATH 环境变量中:
export PATH=<mxe root>/usr/bin:$PATH
运行 Qt Makefile 生成器工具然后构建:
<mxe root>/usr/i686-pc-mingw32/qt/bin/qmake && make
您应该在 ./release 目录中找到该二进制文件:
wine release/foo.exe
一些说明:
使用 MXE 存储库的主分支;它似乎得到了开发团队的更多喜爱。
输出是 32 位静态二进制文件,可在 64 位 Windows 上正常运行。
对于 QT5
以下步骤取自堆栈溢出,如果使用 qt5 进行构建可行,请务必给他们点赞。
以下是完整说明:
得到它:
git clone https://github.com/mxe/mxe.git
为 Windows 构建 Qt 5:
cd mxe && make qtbase
这将首先构建其依赖项和交叉构建工具;在具有良好互联网接入的快速机器上,它应该花费不到一个小时的时间。
由于 Qt 5 的新模块化特性,各种主要的 Qt 组件现在位于不同的 tarball 中。上面选择的 qtbase 应该为您提供足够的功能来运行普通的 GUI 应用程序,这是我自己的(较小)应用程序所需的全部功能。
如果您想构建 Qt 5 的全部功能,则需要运行
make qt5
(而不是 make qtbase)。请注意,这将花费更长的时间才能完成,因此请确保您需要额外的功能。进入应用程序目录,然后运行 Qt Makefile 生成器工具:
<mxe root>/usr/bin/i686-w64-mingw32.static-qmake-qt5
构建你的项目:
make
您应该在 ./release 目录中找到该二进制文件:
wine release/foo.exe
一些说明:
这在我的 64 位 Debian 8 上进行了测试,当然也在 Windows 上进行了测试。
输出是 32 位静态可执行文件,可在 64 位 Windows 上正常运行。
如果您想要 64 位可执行文件,请使用以下命令构建 Qt:
make MXE_TARGETS=x86_64-w64-mingw32.static qtbase
默认的 MXE_TARGETS 值是 i686-w64-mingw32.static。