ROS使用catkin_make编译
基础说明
$ cd ~/catkin_ws #回到工作空间,catkin_make必须在工作空间下执行
$ catkin_make #开始编译
$ source ~/catkin_ws/devel/setup.bash #刷新坏境
--pkg PKG [PKG ...] 只对某个PKG进行make package
--only-pkg-with-deps ONLY_PKG_WITH_DEPS [ONLY_PKG_WITH_DEPS ...]
将指定的package列入白名单 CATKIN_WHITELIST_PACKAGES,
之编译白名单里的package。该环境变量存在于CMakeCache.txt
源代码--src --> build --> devel
catkin_make之后,应该在catkin工作区的根目录中注意到两个新文件夹:build和devel文件夹。
在build文件夹中将调用cmake和make, 缓存信息和中间文件
在devel文件夹中将包含所有生成的文件和目标,以及setup。* sh文件,以便您可以像安装它一样使用它
目标文件(包括头文件,动态链接库,静态链接库,可执行文件)环境变量等
文件系统层次结构标准(FHS)
一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文件等等)
CMakeLists.txt package 的包名-依赖-源文件-目标文件等编译规则
package.xml -- 报名-版本号-作者-依赖信息等
功能包编译
1. 编译工作空间下的所有功能包
catkin_make
2. 编译工作空间下特定的功能包
catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”
3. 编译工作空间下特定的功能包
catkin_make --pkg package_name
4.catkin_make安装到指定目录
source /opt/ros/kinetic/setup.bash
catkin_make -DCMAKE_INSTALL_PREFIX=/opt/ros/kinetic install
关于 DCMAKE_INSTALL_PREFIX
关于 DCATKIN_WHITELIST_PACKAGES 说明
01.编译功能包
catkin_make -DCATKIN_WHITELIST_PACKAGES="需要单独编译的包名"
02.但是如再次使用catkin_make编译所有功能包时会出现仅仅只编译上次设置的单独功能包,如果想要再次使用catkin_make编译所有功能包,需要执行:
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
切换到所有功能包
参考
https://blog.csdn.net/zhaodeming000/article/details/119884395
ROS简介 https://www.kancloud.cn/zhouws/robot_ustc_mooc/2153666