Qt 5.15.2在aarch64上的交叉编译实战:XCB库配置详解
创作时间:
作者:
@小白创作中心
Qt 5.15.2在aarch64上的交叉编译实战:XCB库配置详解
引用
CSDN
等
11
来源
1.
https://blog.csdn.net/zwcslj/article/details/136728332
2.
https://blog.csdn.net/prophet_lgz/article/details/140122318
3.
https://blog.csdn.net/qq_40221892/article/details/136831409
4.
https://m.blog.csdn.net/ggggyj/article/details/120302704
5.
https://blog.csdn.net/jjjxxxhhh123/article/details/144294764
6.
https://blog.csdn.net/AlexiosQ/article/details/144056009
7.
https://blog.csdn.net/q544344318/article/details/142893465
8.
https://m.blog.csdn.net/AlexiosQ/article/details/144056009
9.
https://m.blog.csdn.net/leijiuhu/article/details/144073579
10.
https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/install/install_arm_2.html
11.
https://www.hiascend.com/doc_center/source/zh/Atlas%20200I%20A2/23.0.0/RC/driverdevelopmentguide/atlasdg_11_0103.html
在嵌入式Linux开发中,Qt框架因其跨平台特性和丰富的GUI功能而广受欢迎。然而,要在ARM架构的设备上运行Qt程序,需要先在x86架构的开发主机上进行交叉编译。本文将详细介绍如何在aarch64架构上交叉编译Qt 5.15.2,重点讲解XCB库的配置技巧。
01
环境准备
开发主机环境
确保开发主机已安装必要的开发工具和库:
sudo apt update
sudo apt install build-essential cmake unzip pkg-config gfortran
sudo apt install gcc git bison python gperf flex texinfo gawk bison openssl pigz libncurses-dev autoconf automake tar figlet
安装aarch64-linux-gnu-gcc交叉编译工具链:
sudo apt install g++-aarch64-linux-gnu
目标设备环境
在目标设备上安装必要的依赖包:
sudo apt install build-essential cmake unzip pkg-config gfortran
sudo apt build-dep qt5-qmake libqt5gui5 libqt5webengine-data libqt5webkit5 libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver
sudo apt install libxcb-randr0-dev libxcb-xtest0-dev libxcb-shape0-dev libxcb-xkb-dev
02
依赖库编译
XCB相关库
XCB(X C Binding)是Qt在Linux平台上的重要依赖库。首先需要编译其依赖库xorgproto:
wget https://www.x.org/releases/individual/proto/xorgproto-2021.4.tar.gz
tar -xzvf xorgproto-2021.4.tar.gz
cd xorgproto-2021.4
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure --prefix=/opt/xorgproto --host=aarch64-linux-gnu
make
sudo make install
然后编译libxcb:
wget https://xcb.freedesktop.org/dist/libxcb-1.14.tar.gz
tar -xzvf libxcb-1.14.tar.gz
cd libxcb-1.14
CPPFLAGS="-I/opt/xorgproto/include" LDFLAGS="-L/opt/xorgproto/lib" CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure --prefix=/opt/libxcb --host=aarch64-linux-gnu
make
sudo make install
03
Qt源码配置与编译
下载Qt 5.15.2源码并解压:
wget https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
tar -xvf qt-everywhere-src-5.15.2.tar.xz
cd qt-everywhere-src-5.15.2
创建并编辑autoConfig.sh脚本:
#!/bin/bash
./configure \
-prefix /opt/qt-arm \
-release \
-opensource \
-skip qtwayland \
-skip qtlocation \
-skip qtscript \
-xplatform linux-aarch64-gnu-g++ \
-make libs \
-optimized-qmake \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info \
-pch \
-shared \
-qt-libjpeg \
-qt-zlib \
-qt-libpng
赋予脚本执行权限并运行:
chmod +x autoConfig.sh
./autoConfig.sh
make -j4
sudo make install
04
常见问题与解决方案
缺少依赖库:确保所有依赖库都已正确安装,并且环境变量已正确配置。
编译错误:检查configure脚本中的参数是否正确,特别是交叉编译器的路径和目标平台参数。
运行时错误:确保目标设备上已安装所有必要的运行时库,并且环境变量已正确配置。
通过以上步骤,你可以在aarch64架构上成功交叉编译Qt 5.15.2。虽然过程可能有些复杂,但掌握了这些技巧后,你将能够更高效地开发和部署Qt应用程序。
热门推荐
变频器的最新发展趋势及三种先进控制方案
如何做孕前遗传病基因检测,避免家族遗传病的遗传?
为什么民航客机都要爬升到万米以上?飞低点不是更省油吗?
几月出生的人才虚两岁
什么是好的小提琴音色
彩钢瓦屋顶隔热降温策略:提升房屋舒适度与节能减排
未来的展望:如何帮助孩子规划并实现长远目标
如何提升游戏社交性? 谈促进玩家互动的13种机制
肖战新歌《都一样》:用音乐诠释迷茫与共鸣
轻松设置电脑闹钟,提升时间管理效率的实用指南
36小时玩转慕尼黑丨从古典宫殿到现代艺术的城市漫游
先进AI技术,为智能汽车提供智慧出行智能决策新引擎
窗帘选购指南:从材质到款式,教你选对好窗帘
羊排盛宴:多种烹饪,别样美味,与家人共享!
物料编码与设计代号在供应链中的角色:供应链管理的关键因素
尼尔:机械纪元全结局达成条件(26种结局达成指南)
《婚内婚外》:旗袍下的束缚与自我觉醒
罗浮山风景区旅游攻略 自驾游+住宿+注意事项
南京地铁10号线跨江区间临时停运,记者实地体验晚高峰通勤
日本史| 读《古事记》:日本的神、古今地名、人名、风俗等
切尔西再遇豪门杀手布莱顿 数据暗示或遭双杀
基于BGK-LBM模拟体积力驱动的二维泊肃叶流
见证中国基础设施数字化的光辉时刻
南方草莓怎么种植,有哪些要点
果蔬类营业执照办理流程及所需材料详解
美国医院排名第一,梅奥诊所的传奇医疗之路
游戏的成本如何管理 定价如何控制
游戏开发中的成本管理和定价控制指南
低空经济崛起,飞行汽车能否成为未来出行主流?
南岳旅游观光车:畅行景区的便捷之选