linux对目标交叉编译,如何为从Linux到Windows目标的交叉编译配置Qt?

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

首先,您需要一个基于arch的机器(虚拟机或docker容器就足够了) . 它不一定是Arch Linux,衍生品也可以 . 我用过Manjaro Linux . 大多数mingw-w64软件包在官方Arch存储库中不可用,但有plenty in 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工具链( mingw-w64-gcc )和其他依赖项 . 交叉编译Windows(x64)的Qt项目就像这样简单:

x86_64-w64-mingw32-qmake-qt5

make

要部署您的程序,您需要从 /usr/x86_64-w64-mingw32/bin/ 复制相应的dll .

要获得32位版本,您只需使用 i686-w64-mingw32-qmake-qt5 代替 . 使用 x86_64-w64-mingw32-cmake 可以轻松实现基于Cmake的项目 . 这种方法对我来说非常好,最容易设置,维护和扩展 . 它也适用于持续集成服务 . 也有docker images可用 .

例如,假设我想构建QNapi字幕下载器GUI . 我可以分两步完成:

1)启动docker容器:

sudo docker run -it burningdaylight/docker-mingw-qt5 /bin/bash

2)克隆并编译QNapi

git clone --recursive 'https://github.com/QNapi/qnapi.git'

cd qnapi/

x86_64-w64-mingw32-qmake-qt5

make

而已!在许多情况下,它会很容易 . 将自己的库添加到包存储库(AUR)也很简单 . 你需要write a PKBUILD file,这是最直观的,例如,见mingw-w64-rapidjson .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值