Ubuntu18.04.2编译Xilinx VVAS3.0提示未找到CMake的解决咨询
解决VVAS Edge编译时的CMake未找到与jansson依赖缺失问题
一、解决jansson依赖缺失问题
由于是交叉编译(目标架构为aarch64),主机上安装的jansson无法被交叉编译环境识别,需要在Petalinux SDK的sysroot中安装对应架构的jansson开发包:
方法1:使用Petalinux SDK的opkg工具安装
执行以下命令(替换为你的sysroot路径):
/home/yellowd/petalinux_sdk_2022.2/sysroots/x86_64-petalinux-linux/usr/bin/opkg \ --root=/home/yellowd/petalinux_sdk_2022.2/sysroots/aarch64-xilinx-linux \ --volatile-cache install jansson-dev
方法2:手动编译安装jansson到sysroot
- 下载jansson源码包,解压后进入源码目录
- 加载交叉编译环境变量:
source /home/yellowd/petalinux_sdk_2022.2/environment-setup-aarch64-xilinx-linux
- 配置编译参数(指定目标架构和安装路径):
./configure --host=aarch64-xilinx-linux --prefix=/home/yellowd/petalinux_sdk_2022.2/sysroots/aarch64-xilinx-linux/usr
- 编译并安装:
make && make install
二、解决CMake未找到问题
交叉编译时,Meson会在交叉编译环境的sysroot中查找CMake,而非主机上的版本,可按以下步骤处理:
- 先加载交叉编译环境变量
在运行编译脚本前,必须加载Petalinux SDK的环境配置脚本,确保所有工具链路径正确:
source /home/yellowd/petalinux_sdk_2022.2/environment-setup-aarch64-xilinx-linux
- 验证并安装sysroot中的CMake
检查sysroot的usr/bin目录下是否有cmake:
ls /home/yellowd/petalinux_sdk_2022.2/sysroots/aarch64-xilinx-linux/usr/bin/cmake
如果存在,加载环境变量后Meson应该能自动识别;如果不存在,需交叉编译CMake到sysroot:
- 下载CMake源码包,解压后进入目录
- 加载交叉环境变量后,执行bootstrap配置:
./bootstrap --prefix=/home/yellowd/petalinux_sdk_2022.2/sysroots/aarch64-xilinx-linux/usr --host=aarch64-xilinx-linux
- 编译安装:
make && make install
- 手动指定CMake路径(可选)
如果加载环境变量后仍无法识别,可在运行编译脚本时通过Meson参数指定CMake路径:
./build_install_vvas.sh TARGET=Edge -Dcmake=/home/yellowd/petalinux_sdk_2022.2/sysroots/aarch64-xilinx-linux/usr/bin/cmake
最后验证
完成上述操作后,重新运行编译脚本:
./build_install_vvas.sh TARGET=Edge
内容的提问来源于stack exchange,提问作者yellowd
相关产品推荐
相关产品推荐

