先说结论:失败,但如果项目小的话,这也是一种方法提供参考。
背景
参考前一篇 Qt6 交叉编译笔记-CSDN博客
已经折腾了一周时间,直接在宿主系统编译行不通,退而求其次,在虚拟镜像中编译,虽然慢点,好歹是个方法。人已经麻了...
物理机
系统:ubuntu 24.06 x84_64
内存:32G swap 8G 完全不够用,下午6点到第二天早上7点就爆掉不动,系统无响应,进度才到30%
内存:40G swap 32G
硬盘:SSD 120G
CPU:I7-7770
目标环境
系统:debain (12.6的版本,官方支持Debian 11.6 on ARM)
架构:ARM64
重点就是在ubuntu x86系统弄个arm64的虚拟环境,在虚拟环境中编译
备注:虽然ubuntu有现成的arm64虚拟镜像【参考】,但是为了不想折腾,就按官方弄个debain的虚拟镜像,因为之前在麒麟的ARM64上吃过亏,莫名奇妙的问题
在ubuntu 系统中构建debain的虚拟镜像参考:
Lichee 使用debain - 三七鸽 - 博客园 (cnblogs.com)
有些不一致的,再整理记录一下
1 准备环境
sudo apt install qemu-user-static -y
sudo apt install debootstrap -y
sudo apt install debain-archive-keyring
2 新建rootfs目录存放debain
mkdir /path/to/rootfs
3 使用debootstrap下载
debootstrap --foreign --verbose --arch=arm64 stable rootfs https://mirrors.tuna.tsinghua.edu.cn/debian/
4 添加qemu-arm-static工具到目录下
sudo cp /usr/bin/qemu-arm-static /path/to/rootfs/usr/bin/
sudo chmod +x /path/to/rootfs/usr/bin/qemu-arm-static
5 切换到虚拟镜像
sudo chroot /path/to/rootfs
6 解压包
debootstrap/debootstrap --second-stage --verbose
7 更新系统
apt update
apt upgrade
剩下的就参考
linux arm64 Qt6/PySide6 WebEngine 支持 webrtc -h264
等待吧,一切都交给时间
--------------------2024-09-04
放弃了,内存调整到40G,Swap给到50G
configure 生成,CPU完全满载运行了3天才完成,内存和swap也爆满,期间重启了几次
后面ninja /cmake 时,CPU占用率较低,10%左右,内存和swap 完全爆掉导致ccplus1中断失败
在虚拟镜像中编译效率非常低,不知道是不是内存不够大的原因导致结果失败。不再折腾了