【ARM开发】交叉编译Qt源码之(1)编译xcb

本文详细介绍了如何交叉编译 xcb 以及它的依赖库 xcb-proto、xorgproto 和 Xauth 的过程。首先,按照 xcb-proto -> xorgproto -> Xauth -> xcb 的顺序进行编译。在每个阶段,都需要设置正确的交叉编译环境,并配置安装路径。编译过程中可能遇到的错误,如缺少依赖文件,需要先编译缺失的库。整个流程旨在为特定平台构建 xcb 库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、依赖

        xcb依赖xcb-proto和Xauth,而Xauth则依赖xorgproto,因此编译顺序应为xcb-proto->xorgproto->Xauth->xorgproto。

     1.1、xcb-proto 

        下载地址:Index of /disthttps://xcb.freedesktop.org/dist/

#解压
tar -zxvf xcb-proto-1.13.tar.gz
cd xcb-proto-1.13
#交叉编译环境,其中/path/to/cross-compile指交叉编译器目录
#如/home/user/toolchain/arm-linux-gnueabihf/bin
export PATH=$PATH:/path/to/cross-compile
#配置,其中/path/to/prefix指编译安装目录
#如/home/user/toolchain/arm-linux-gnueabihf/arm-linux-gnueabihf
#把编译结果安装在交叉编译器中,否则引用到该库需要指定对应的目录
./configure --prefix=/path/to/prefix \
--host=arm-linux-gnueabihf \
--enable-option-checking
#编译
make
#安装
make install

        1.2、xorgproto

        下载地址:Index of /releases/individual/protohttps://www.x.org/releases/individual/proto/

#解压
tar -zxvf xorgproto-2021.5.tar.gz
cd xorgproto-2021.5
#交叉编译环境,其中/path/to/cross-compile指交叉编译器目录
#如/home/user/toolchain/arm-linux-gnueabihf/bin
export PATH=$PATH:/path/to/cross-compile
#配置,其中/path/to/prefix指编译安装目录
#如/home/user/toolchain/arm-linux-gnueabihf/arm-linux-gnueabihf
#把编译结果安装在交叉编译器中,否则引用到该库需要指定对应的目录
./configure --prefix=/path/to/prefix \
--host=arm-linux-gnueabihf \
--enable-option-checking
#编译
make
#安装
make install

        1.3、Xauth

        下载地址:Index of /releases/individual/libhttps://www.x.org/releases/individual/lib/

#解压
tar -zxvf libXau-1.0.9.tar.gz
cd libXau-1.0.9
#交叉编译环境,其中/path/to/cross-compile指交叉编译器目录
#如/home/user/toolchain/arm-linux-gnueabihf/bin
export PATH=$PATH:/path/to/cross-compile
#配置,其中/path/to/prefix指编译安装目录
#如/home/user/toolchain/arm-linux-gnueabihf/arm-linux-gnueabihf
#把编译结果安装在交叉编译器中,否则引用到该库需要指定对应的目录
./configure --prefix=/path/to/prefix \
--host=arm-linux-gnueabihf \
--enable-option-checking
#编译
make
#安装
make install

        编译错误:

./include/X11/Xauth.h:56:31: fatal error: X11/Xfuncproto.h: No such file or directory

缺少xorgproto,执行1.2交叉编译xorgproto

2、编译xcb

下载地址:Index of /disthttps://xcb.freedesktop.org/dist/这里以1.13为例

#解压
tar -zxvf libxcb-1.13.tar.gz
cd libxcb-1.13
#交叉编译环境,其中/path/to/cross-compile指交叉编译器目录
#如/home/user/toolchain/arm-linux-gnueabihf/bin
export PATH=$PATH:/path/to/cross-compile
#指定交叉编译器pkg_config的目录,交叉编译时能找到前面编译的头文件和库文件
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/user/toolchain/arm-linux-gnueabihf/arm-linux-gnueabihf/lib/pkgconfig
#配置,其中/path/to/prefix指编译安装目录
#如/home/user/toolchain/arm-linux-gnueabihf/arm-linux-gnueabihf
#把编译结果安装在交叉编译器中,否则引用到该库需要指定对应的目录
./configure --prefix=/path/to/prefix \
--host=arm-linux-gnueabihf \
--enable-option-checking
#编译
make
#安装
make install

编译错误:

No package 'xcb-proto' found

 缺少xcb-proto,执行1.1交叉编译xcb-proto

xcb_auth.c:33:23: fatal error: X11/Xauth.h: No such file or directory

缺少Xauth,执行1.3交叉编译Xauth

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值