银河麒麟V10+ARM CPU:解决xcb编译难题
创作时间:
作者:
@小白创作中心
银河麒麟V10+ARM CPU:解决xcb编译难题
引用
CSDN
等
11
来源
1.
https://blog.csdn.net/weixin_44421175/article/details/139412818
2.
https://blog.csdn.net/weixin_42568710/article/details/142815914
3.
https://blog.csdn.net/xie__jin__cheng/article/details/145219435
4.
https://blog.csdn.net/u011223449/article/details/136097781
5.
https://blog.csdn.net/gitblog_09811/article/details/142939578
6.
https://blog.csdn.net/weixin_42979272/article/details/138684848
7.
https://formulae.brew.sh/
8.
https://marketplace.huaweicloud.com/contents/1be4b31e-eb4c-4fb2-b664-82379520fefc
9.
https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/install/install_arm_1.html
10.
https://doc.embedfire.com/linux/rk356x/Qt/zh/latest/lubancat_qt/install/install_arm_2.html
11.
https://formulae.brew.sh/formula/python@3.13
在银河麒麟V10操作系统上使用ARM CPU编译Qt5.12.8时,经常会遇到xcb相关的编译错误。本文将详细介绍如何解决这一技术难题,帮助开发者顺利完成编译工作。
01
环境准备
银河麒麟V10操作系统基于ARM架构,这与其他常见的x86架构系统有所不同。因此,在编译Qt5.12.8之前,我们需要确保所有必要的依赖库都已正确安装。
首先,我们需要使用kylin包管理器来安装以下依赖库:
sudo apt update
sudo apt install libxcb-dev libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
此外,我们还需要安装一些其他必要的开发工具和库:
sudo apt install build-essential libfontconfig1-dev libdbus-1-dev libfreetype6-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-glx0-dev libx11-xcb-dev libxcb-util-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev libxcb-xinput-dev libxcb-xrandr-dev
02
依赖库安装
在安装了基本的依赖库之后,我们还需要下载并编译一些额外的库,如xcb-proto、xorgproto和Xauth。这些库通常可以通过包管理器直接安装,但在某些情况下,可能需要从源码编译。
使用包管理器安装:
sudo apt install xcb-proto xorgproto xauth
如果需要从源码编译,可以按照以下步骤操作:
- 下载源码包:
wget https://xcb.freedesktop.org/dist/xcb-proto-1.14.1.tar.gz
wget https://www.x.org/releases/individual/proto/xorgproto-2021.4.tar.gz
wget https://www.x.org/releases/individual/app/xauth-1.1.tar.gz
- 解压并编译:
tar -xf xcb-proto-1.14.1.tar.gz
cd xcb-proto-1.14.1
./configure
make
sudo make install
cd ..
tar -xf xorgproto-2021.4.tar.gz
cd xorgproto-2021.4
./configure
make
sudo make install
cd ..
tar -xf xauth-1.1.tar.gz
cd xauth-1.1
./configure
make
sudo make install
cd ..
03
xcb库编译
在安装了所有必要的依赖库之后,我们可以开始编译xcb库。首先,需要下载xcb库的源码包:
wget https://xcb.freedesktop.org/dist/libxcb-1.14.tar.gz
然后,按照以下步骤编译:
tar -xf libxcb-1.14.tar.gz
cd libxcb-1.14
./configure
make
sudo make install
cd ..
04
Qt5.12.8编译
在所有依赖库都已正确安装之后,我们可以开始编译Qt5.12.8。首先,需要下载Qt5.12.8的源码包:
wget https://download.qt.io/new_archive/qt/5.12/5.12.8/single/qt-everywhere-src-5.12.8.tar.xz
然后,按照以下步骤编译:
sudo tar -xf qt-everywhere-src-5.12.8.tar.xz
cd qt-everywhere-src-5.12.8
由于配置参数较多,建议创建一个自动配置脚本:
sudo touch auto.sh
sudo chmod 755 auto.sh
sudo vim auto.sh
在auto.sh中添加以下内容:
./configure -prefix /root/qt-5.12.8 \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-webengine-proprietary-codecs \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-skip qtgraphicaleffects \
-make libs \
-nomake tools \
-nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
-qt-zlib \
-no-vulkan \
-no-openssl \
--freetype=qt \
--harfbuzz=qt \
-opengl es2 \
-xcb \
-xcb-xlib \
-egl \
-eglfs \
--pcre=qt \
-linuxfb \
-no-tslib \
-qt-libpng \
-qt-libjpeg \
--sqlite=qt
运行auto.sh脚本进行配置:
sh auto.sh
配置完成后,开始编译:
make
sudo make install
05
常见问题及解决方案
在编译过程中,可能会遇到以下问题:
- 缺少依赖库:如果configure阶段报错,提示缺少某个库,需要确保所有依赖库都已正确安装。可以使用
pkg-config检查库是否可用:
pkg-config --list-all | grep <库名>
- 环境变量问题:如果编译时找不到库文件,需要检查
PKG_CONFIG_PATH和LD_LIBRARY_PATH环境变量是否正确设置:
export PKG_CONFIG_PATH=/path/to/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
- 版本不兼容:如果遇到版本不兼容的问题,需要确保所有依赖库的版本都与Qt5.12.8的要求相匹配。可以查看Qt的官方文档获取具体的版本要求。
通过以上步骤,应该能够解决在银河麒麟V10操作系统上使用ARM CPU编译Qt5.12.8时遇到的xcb相关问题。如果仍然遇到问题,建议查看Qt的官方文档或在相关的开发者论坛寻求帮助。
热门推荐
见贤思齐焉,见不贤而内自省——论人性修养与自我提升
公共营养师考试难不难 考些什么内容
卸载NVIDIA显卡驱动后的影响
男生用身体乳合适吗
3.7平方公里的战场,抗美援朝中最关键一战!直接影响美国大选?
世界防治结核病日:你我共同努力,终结结核流行
一文读懂“道氏理论”精髓:终于有人把道氏理论讲透了,简单实用
准确率达98.7%!复旦大学郁金泰最新研究:用AI分析发现AD诊断新指标
广西交通历史名城柳州,历经年深日久交流,美食独具特色风味
USB Type-C引脚信号及PCB布局布线
如何选择适合自己的IT行业岗位?
UEFI系统迁移教程:如何将Windows系统从旧硬盘迁移到新硬盘?
中国古代的酒礼与酒德
与心脑血管病打交道60年,国医大师翁维良:养心讲究“三不过”
“预制人”是个什么梗?网络热梗背后的社会现象解析
日本料理有哪些分类各有什么特点
张天翼《人鱼之间》:解构经典童话,女性视角讲述现代寓言
旅行家、菩萨行者,法显大师!他的求法壮举62岁才拉开序幕
库尔斯克战役停火协议下的严寒考验与前线士兵的生死挣扎
经常嗜睡、疲乏、记忆力减退?医生:建议查查甲状腺
流水地貌教学设计:以河流侵蚀地貌为例
定格动画:老式技术加现代软件等于电影魔法
盘点NBA三分大赛中的传奇时刻,霍奇斯连续三冠,库里压哨致胜!
探秘紫禁之巅:太妃的身份与她与皇帝的关系
前端开发和运维如何选择
台球规则介绍 台球比赛基本规则
小黄桃撬动“乡村振兴”大产业 炎陵黄桃今年预计产量8.6万吨
张爱玲作品《半生缘》简介及其赏析
主谋和凶手的判刑区别
Obsidian插件安装指南:Annotator插件的安装与使用详解