地平线X3交叉编译cartographer

需要安装资源包:

1.先在服务器安装交叉编译链的docker,参考链接1
2.将x3板子的根目录关挂到服务器的某个目录下,将该目录挂载到docker里面
3.编写一个cross.cmake用于指定一些已经编好的库的路径.

遇到问题:

直接用这个命令编译,容易出错:colcon build --packages-up-to cartographer_ros --cmake-args -DCMAKE_TOOLCHAIN_FILE=/home/x3_rootfs/cross.cmake,可以分布编译,先编译cartographer,再用此命令编译
1.编译cartograper
编译指令cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=/home/x3_rootfs/cross.cmake …
1.1.CMake Error: CMake was unable to find a build program corresponding to “Ninja”. CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.

原因分析:未安装ninja-build
解决办法:apt install ninja-build

1.2.找不到gflags,glob,ceres
在我的x3上实际已经安装过,所以只需连接相应的安装库,实际是ceres在搜索相应的依赖

原因分析:
解决办法:
找到x3板上的/usr/lib/cmake/Ceres/CeresConfig.cmake
set(gflags_DIR ${挂载路径}/usr/lib/aarch64-linux-gnu/cmake/gflags)

1.3.ninja: error: ‘/home/x3_rootfs/usr/lib/aarch64-linux-gnu/libm.so’, needed by ‘cartographer.transform.transform_test’, missing and no known rule to make it

原因分析:/home/x3_rootfs/usr/lib/aarch64-linux-gnu/libm.so是个软连接
解决办法:,找到软连接的位置,将需要的库拷贝到软连接的位置
cp -rf /home/x3_rootfs/usr/lib/aarch64-linux-gnu/* /lib/aarch64-linux-gnu/

1.4
问题1:PROTOBUF_PROTOC_EXECUTABLE-NOTFOUND: Command not found
问题2:/bin/sh: 1: /usr/bin/protoc: not found
原因分析: protobuf-compiler
解决办法:apt-get install protobuf-compiler
这里如果是交叉编译,apt-get install protobuf-compiler会安装高版本的protobuf,实际上cartographer cmakelist.txt需要的是3.0.0,一般源码编x86版本的3.0.0的protobuf,用script中的install_proto3.sh安装即可

1.5 CMake Error at /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:707 (message):
None of the required ‘cairo>=1.12.16’ found
原因分析,未找到cairo的cairo.pc配置的路径,实际却的是xproto.pc这个库的配置路径
解决办法: 在环境变量中添加:export PKG_CONFIG_PATH=“/home/x3_rootfs/usr/lib/aarch64-linux-gnu/pkgconfig:/home/x3_rootfs/usr/share/pkgconfig”

1.6 warning: libblas.so.3/liblapack.so.3, needed by /home/x3_rootfs/lib/aarch64-linux-gnu/libspqr.so.2, not found (try using -rpath or -rpath-link)

原因分析:这个警告将导致后面的链接失败
解决办法: 所以要找到aarch64格式的libblas.so.3/liblapack.so.3,将其添加到LD_LIBRARY_PATH中,并保证改库的实际存在,即检查软连接路径是否正常,交叉编译的链接路径经常会出错

参考链接:1.https://developer.horizon.ai/forumDetail/118364000835765836

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值