如何在x64 Ubuntu系统中安装ARM64版本的libcap库?
解决ARM64交叉编译libcap链接失败问题
方案1:开启多架构支持后安装官方库
Ubuntu 20.04默认可能未启用ARM64架构的软件源支持,先补上架构支持:
sudo dpkg --add-architecture arm64 sudo apt update
之后再执行安装命令,就能定位到ARM64版的libcap开发库:
sudo apt install libcap-dev:arm64
安装完成后,ARM64版本的libcap.a会存放在/usr/lib/aarch64-linux-gnu/目录下,你的交叉编译命令aarch64-linux-gnu-gcc -g t_cap_get_file.c -lcap可自动识别该库,无需额外修改。
方案2:手动编译ARM64版libcap
如果官方源无对应包,可自行编译源码:
- 下载最新稳定版libcap源码(版本号可按需调整):
wget https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.64.tar.xz tar -xf libcap-2.64.tar.xz cd libcap-2.64 - 配置交叉编译环境变量,指定ARM64工具链:
export CC=aarch64-linux-gnu-gcc export AR=aarch64-linux-gnu-ar export RANLIB=aarch64-linux-gnu-ranlib - 编译并安装到独立目录(避免与本地x86_64库冲突):
make prefix=/usr/local/aarch64-libs install - 编译程序时手动指定库路径:
aarch64-linux-gnu-gcc -g t_cap_get_file.c -L/usr/local/aarch64-libs/lib -lcap
方案3:检查交叉编译器的库搜索路径
若手动编译后仍找不到库,可先查看交叉编译器默认搜索路径:
aarch64-linux-gnu-gcc -print-search-dirs
如果目标库不在默认路径内,除了用-L参数指定,也可临时设置环境变量添加路径:
export LD_LIBRARY_PATH=/usr/local/aarch64-libs/lib:$LD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者Jimm Chen
相关产品推荐
相关产品推荐

