在Linux上交叉编译Windows软件的另一种方法是使用Archlinux上的mingw-w64工具链。 它易于使用和维护,并提供最新版本的编译器和许多库。 我个人认为它比MXE更容易,它似乎更快地采用了更新版本的库。
首先,您需要一个基于arch的计算机(虚拟机或docker容器就足够了)。 它不一定是Arch Linux,衍生品也会这样做。 我用过Manjaro Linux。官方Arch存储库中没有大多数mingw-w64软件包,但AUR中有很多。 Arch(pacman)的默认包管理器不支持直接从AUR安装,因此您需要安装和使用像pacaur或yaourt这样的AUR包装器。 然后安装mingw-w64版本的Qt5和Boost库就像这样简单:
pacaur -Sy mingw-w64-qt5-base mingw-w64-boost
#yaourt -Sy mingw-w64-qt5-base mingw-w64-qt5-boost #if you use yaourt
这也将安装mingw-w64工具链(i686-w64-mingw32-qmake-qt5)和其他依赖项。交叉编译Windows(x64)的Qt项目就像这样简单:
x86_64-w64-mingw32-qmake-qt5
make
要部署您的程序,您需要从i686-w64-mingw32-qmake-qt5复制相应的dll。
要获得32位版本,您只需使用i686-w64-mingw32-qmake-qt5即可。 基于Cmake的项目与x86_64-w64-mingw32-cmake一样简单。这种方法对我来说非常好,最容易设置,维护和扩展。它也适用于持续集成服务。 还有码头图像。
例如,假设我想构建QNapi字幕下载器GUI。 我可以分两步完成:
1)启动d