1、依赖
xcb依赖xcb-proto和Xauth,而Xauth则依赖xorgproto,因此编译顺序应为xcb-proto->xorgproto->Xauth->xorgproto。
1.1、xcb-proto
下载地址:Index of /dist
https://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/proto
https://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/lib
https://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 /dist
https://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
本文详细介绍了如何交叉编译 xcb 以及它的依赖库 xcb-proto、xorgproto 和 Xauth 的过程。首先,按照 xcb-proto -> xorgproto -> Xauth -> xcb 的顺序进行编译。在每个阶段,都需要设置正确的交叉编译环境,并配置安装路径。编译过程中可能遇到的错误,如缺少依赖文件,需要先编译缺失的库。整个流程旨在为特定平台构建 xcb 库。
编译xcb&spm=1001.2101.3001.5002&articleId=122826798&d=1&t=3&u=46985d2b3c474ecca2c68720d02907f7)
4771

被折叠的 条评论
为什么被折叠?



