1 准备工作
在所有的系统依赖项都安装好之后,就可以编译一个新的package了。
注意:如果是使用
apt
方式安装的话,所有的依赖项会被自动安装好。
在编译之前,一定要刷新一下环境。
标准用法:
$ source /opt/ros/%YOUR_ROS_DISTRO%/setup.bash
例如在ubuntu下:
$ source /opt/ros/kinetic/setup.bash
2 使用catkin_make
在一个标准的catkin工作环境中,catkin_make
是一个快捷的编译命令。你可以理解为catkin_make
结合了cmake
和make
命令。
标准用法:
# In a catkin workspace
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
对比一下CMake的工作模式:
注意:这样子,是不会成功编译的!
# In a CMake project
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install # (optionally)
而catkin可以一下子同时编译许多项目:
# In a catkin workspace
$ catkin_make
$ catkin_make install # (optionally)
这个命令可以编译src
文件下所有的catkin项目。
相应的,也可以编译某个特定目录下的项目文件,假定项目代码存放在my_src
目录下:
# In a catkin workspace
$ catkin_make --source my_src
$ catkin_make install --source my_src # (optionally)
3 编译一个package
如果你按照之前的方式创建了一个beginner_tutuorials
的package,使用了catkin_creat_pkg
命令,那么在src
文件下应该是这样:
$ cd ~/catkin_ws/
$ ls src
# echo
beginner_tutorials CMakeLists.txt
接着使用catkin_make
命令编译:
$ catkin_make
会出现类似于这样的:
Base path: /home/lk/catkin_ws/catkin_ws
Source space: /home/lk/catkin_ws/catkin_ws/src
Build space: /home/lk/catkin_ws/catkin_ws/build
Devel space: /home/lk/catkin_ws/catkin_ws/devel
Install space: /home/lk/catkin_ws/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/lk/catkin_ws/catkin_ws/build"
####
####
#### Running command: "make -j4 -l4" in "/home/lk/catkin_ws/catkin_ws/build"
####
这时候,catkin的工作空间里产生了许多文件夹,使用ls
命令来查看:
$ ls
# echo
build devel src