linux交叉编译qt会出现exe,如何配置Qt以便从Linux到Windows目标进行交叉编译?

在Linux上交叉编译Windows软件的另一种方法是Archlinux上的mingw-w64工具链。它易于使用和维护,并且提供了最新版本的编译器和许多库。我个人觉得它比MXE容易,而且似乎更快地采用了新版本的库。

首先,您将需要一台基于Arch的机器(虚拟机或docker容器就足够了)。不必是Arch Linux,衍生产品也可以。我使用了Manjaro Linux。大多数mingw-w64软件包在官方的Arch存储库中不可用,但是AUR中有很多。Arch(pacman)的默认软件包管理器不支持直接从AUR安装,因此您将需要安装和使用yay或yaourt之类的AUR包装器。然后安装mingw-w64版本的Qt5和Boost库非常简单:

yay -Sy mingw-w64-qt5-base mingw-w64-boost

#yaourt -Sy mingw-w64-qt5-base mingw-w64-qt5-boost #if you use yaourt

这还将安装mingw-w64工具链(mingw-w64-gcc)和其他依赖项。然后为Windows(x64)交叉编译Qt项目非常简单:

x86_64-w64-mingw32-qmake-qt5

make

要部署你的程序,你将需要复制相应的dll的/usr/x86_64-w64-mingw32/bin/。例如,您通常需要复制/usr/x86_64-w64-mingw32/lib/qt/plugins/platforms/qwindows.dll到 program.exe_dir/platforms/qwindows.dll。

要获得32位版本,您只需使用即可i686-w64-mingw32-qmake-qt5。基于Cmake的项目与一样容易工作x86_64-w64-mingw32-cmake。这种方法对我来说非常有效,是最容易设置,维护和扩展的。持续集成服务也很不错。也有docker镜像可用。

例如,假设我要构建QNapi字幕下载器GUI。我可以分两步来做:

启动Docker容器:

须藤码头运行-it burningdaylight / docker-mingw-qt5 / bin / bash

克隆并编译QNapi

git clone --recursive'https://github.com/QNapi/qnapi.git'cd qnapi / x86_64-w64-mingw32-qmake-qt5 make

而已!在许多情况下,这将很容易。将您自己的库添加到软件包存储库(AUR)也是很简单的。您将需要编写一个PKBUILD文件,它尽可能地直观,例如,参见mingw-w64-rapidjson。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值