catkin_make概述和一些具体问题解决方案

一定要搞明白make/makefile/catkin_make/cmake/Cmakelist的关系,本质是链接文件去生成可执行文件

系统学习大家还是要自己学,主要给大家提供思路,学习大纲还有遇到的一些问题的解决方法,少走弯路

1.catkin编译系统

对于源代码包,我们只有编译才能在系统上运行。而Linux下的编译器有gcc、g++,随着源文件的增加,直接用gcc/g++命令的方式显得效率低下,人们开始用Makefile来进行编译。然而随着工程体量的增大,Makefile也不能满足需求,于是便出现了Cmake工具。CMake是对make工具的生成器,是更高层的工具,它简化了编译构建过程,能够管理大型项目,具有良好的扩展性。对于ROS这样大体量的平台来说,就采用的是CMake,并且ROS对CMake进行了扩展,于是便有了Catkin编译系统。

其实早期是rosbuild,目前还支持使用,但是ros的核心软件包都已经被转换为Catkin

1.1catkin_make 结构和特点

1.2catkin_make编译流程

source用来配置环境,不然roslaunch找不到对应的包

1.3catkin_make文件系统

2.package

package也是ROS源代码存放的地方,任何ROS的代码无论是C++还是Python都要放到package中,这样才能正常的编译和运行。

一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文件等等)。

2.1package结构

2.2package指令

3.实操

点进源代码包后,把build/devel两个包删了,在当前路径下进入终端

 catkin_make

如果没有error,记得source配置环境,编译成功‘

以下是一些问题现象和解决方案

问题①

 CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "catkin_virtualenv" with any of the following names:
 ​
     catkin_virtualenvConfig.cmake
     catkin_virtualenv-config.cmake
   Invoking "make cmake_check_build_system" failed

这是由于缺少包导致的

解决方案,在终端输入:

 sudo apt-get install ros-noetic-catkin-virtualenv

注意:

1.error里面”_”下划线在解决代码里面用“-”分割符号

2.Ubuntu20.04是noetic Ubuntu18.04是melodic

3.有可能缺少好几个包,catkin_make多编译几次再下载几次包

问题②

在下载的时候

 E:无法定位到软件包

原因很多,网络连接问题、ros软件源、apt源过期等问题

解决方案:

查一遍list,这个很麻烦需要耐心,我没试过谨慎试

换源镜像,可以参考:

http://t.csdnimg.cn/o9dce

理论部分参考:ROS从入门到精通系列(五)catkin详解与catkin_make编译-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值