【ROS交叉编译】——brisk

ROS,交叉编译,

这是一个交叉编译问题的集合,记录相关的问题的,所以可能比较乱。

1. 错误: #include_next 是一个 GCC 扩展 [-Werror]

报错:

limits.h:124:3: 错误: #include_next 是一个 GCC 扩展 [-Werror]
 # include_next <limits.h>
   ^~~~~~~~~~~~
cc1plus:所有的警告都被当作是错误

解决:
这是因为gcc将警告当成了错误,在CMakeLists.txt中注释掉这句:
add_definitions( -Werror )

2.ExternalProject_Add编译的依赖库

有时候通过-DCMAKE_INSTALL_PREFIX=${CATKIN_DEVEL_PREFIX}指定的安装路径有可能不行,可以尝试:-DCMAKE_INSTALL_PREFIX:PATH=${CATKIN_DEVEL_PREFIX}

3. skipping incompatible /home/darknet/CM/28_ros/maplab_enhanced/devel/lib/libmetis.so when searching for -lmetis

这种一般就是交叉编译的时候用了x86 host上的编译器,编译生成的动态库的格式不对。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kinetic ROS 是一种基于机器人操作系统(ROS)的版本,主要用于开发和控制机器人。交叉编译是在一个计算机系统上为另一个不同架构的目标系统生成可执行代码的过程。 在进行 Kinetic ROS 交叉编译之前,需要确保目标系统和开发系统具有相同的 ROS 版本和软件库。此外,还需了解目标系统的架构和操作系统。 首先,在开发系统上安装必要的交叉编译工具链和相关软件包。这些工具链包括交叉编译器、连接器和库文件等。可以通过命令行或者包管理器来安装这些工具。 接下来,需要为目标系统交叉编译 ROS 的源代码。首先,从源代码库中获取 ROS 的源代码,并解压到开发系统的工作空间中。然后,通过运行特定的交叉编译命令,将源代码编译成目标系统可以执行的可执行文件。 在编译过程中,可能会遇到一些依赖项缺失的问题。这时,需要在开发系统上安装这些缺失的依赖项,并且确保它们也符合目标系统的要求。 完成编译后,将生成的可执行文件和相关的库文件复制到目标系统中。然后,将所有必要的配置文件和启动脚本等也复制到目标系统上。 最后,将目标系统与开发系统连接起来,并确保两者之间的通信正常。这可能需要对网络设置或者串口通信进行相应的配置。 通过以上步骤,可以成功地将 Kinetic ROS 交叉编译到目标系统中,从而实现在目标系统上进行机器人控制和开发的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值