ROS使用catkin_make编译


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
ROS