基本目标
在主机(Ubuntu)CPU架构为x86_64上编译出可以在CPU架构为armv7l主机(Debian)上运行的Qt
环境基本信息
名称 | 信息 | 备注 |
---|---|---|
ubuntu-16-04 | Intel® Xeon® Silver 4114 CPU @ 2.20GHz(4 core) / 4G | 无 |
环境搭建
构建Debian模拟文件系统
见参考1
注:构建系统时架构需要设置为armhf
通过以上操作后,假设我们的文件系统路径如下:
1 | /demo/workplace/linux-rootfs-armhf |
安装依赖库
1 | $ sudo chroot /demo/workplace/linux-rootfs-armhf |
安装交叉编译器
1 | $ sudo apt install binutils-arm-linux-gnueabihf \ |
编译Qt5.8.0
下载Qt5.8.0源码
1 | $ wget https://download.qt.io/new_archive/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.xz |
解压Qt5.8.0源码包
1 | $ tar xvf https://download.qt.io/new_archive/qt/5.8/5.8.0/single/qt-everywhere-opensource-src-5.8.0.tar.xz |
修改源码中存在的bug
- 缺少头文件
1 | $ cd qt-everywhere-opensource-src-5.8.0 |
添加arm-gnueabihf-g++编译器配置文件
1 | $ cd qt-everywhere-opensource-src-5.8.0 |
开始编译
1 | $ ./configure -release -device linux-arm-generic-g++ -sysroot /demo/workplace/linux-rootfs-armhf -prefix /usr/local/Qt-5.8.0 -xplatform linux-arm-gnueabihf-g++ -opensource -confirm-license -nomake tests |
注:编译时间较长请耐心等待