ros_and_cmake - yuhannah/skills_map GitHub Wiki
ROS 的编译和 cmake 的编译
ROS官网
ROS的catkin编译指导
https://wiki.ros.org/catkin/Tutorials
ROS的catkin的CMakeLists.txt
https://wiki.ros.org/catkin/CMakeLists.txt
https://docs.ros.org/en/groovy/api/catkin/html/dev_guide/generated_cmake_api.html#catkin-package
https://answers.ros.org/question/58498/what-is-the-purpose-of-catkin_depends/
ROS 的编译
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
catkin_make
目录名称不限于catkin_ws
,只要在 package 所在的目录src
初始化生成 CMakeLists.txt 就能编译。
只编译 src 下的部分 package:
catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”
重置上述筛选条件,编译全部 package:
catkin_make -DCATKIN_WHITELIST_PACKAGES=“”
cmake 的编译
cd ~/catkin_ws/src
catkin_init_workspace
cd ..
mkdir build
cd build
cmake ../src -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel
make
不论在什么目录结构下都能用 cmake 编译:
将 package 所在的目录作为 workspace,初始化生成 CMakeLists.txt。
cd ~/1/2/3/
catkin_init_workspace # 在3/下生成CMakeLists.txt
cd ../../
mkdir build # 在1/下创建build
cd build
cmake ../2/3/ -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../devel # 在1/下生成devel
make # 编译结果在build里
在 workspace 基础上,搭建 cmake 项目:
目录结构:
- 1
- build
- libs
- src
- open_karto
- slam_karto
- sba
- CMakeLists.txt
- devel
- CMakeLists.txt
在项目目录1/
下新建buid/
文件夹,用于存放编译结果:
cd ~/1
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=../install -DCATKIN_DEVEL_PREFIX=../libs/devel
make
编译通过,libs 编译的库在 libs/devel/ 下,项目的编译结果在 1/build/ 下。