这篇涵盖了使用一系列工具build package
1 编译package
只要安装了所有你的包需要的依赖,你就可以编译你的包了。
在开始之前你要先准备好你的环境,ROS环境,就像这样:
$ source /opt/ros/%YOUR_ROS_DISTRO%/setup.bash
比如我是Kinetic,所以我应该输入:
$ source /opt/ros/kinetic/setup.bash
1.1 使用catkin_make
它就类似于make,cmake这个的命令行工具。
用法:
# In a catkin workspace 在catkin工作空间里面用
$ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
标准的CMake工作流程是这样的
# In a CMake project
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make install # (optionally)
对于catkin工程,可以把工作区中的0到多个package一起编译,还记得前面建立包的时候吧,里面什么都没有也可以编译一下。
# 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)
想要学习更多的catkin_make用法,可以看文档
1.2 编译你的package
首先打开catkin工作空间,并且确认有package。
例如:
$ cd ~/catkin_ws/
$ ls src
然后执行
catkin_make
就会得到下面这段:
Base path: /home/qkingros/catkin_ws
Source space: /home/qkingros/catkin_ws/src
Build space: /home/qkingros/catkin_ws/build
Devel space: /home/qkingros/catkin_ws/devel
Install space: /home/qkingros/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/qkingros/catkin_ws/build"
####
-- Using CATKIN_DEVEL_PREFIX: /home/qkingros/catkin_ws/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/kinetic
-- This workspace overlays: /opt/ros/kinetic
-- Using PYTHON_EXECUTABLE: /usr/bin/python
-- Using Debian Python package layout
-- Using empy: /usr/bin/empy
-- Using CATKIN_ENABLE_TESTING: ON
-- Call enable_testing()
-- Using CATKIN_TEST_RESULTS_DIR: /home/qkingros/catkin_ws/build/test_results
-- Found gtest sources under '/usr/src/gtest': gtests will be built
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.4
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~ traversing 1 packages in topological order:
-- ~~ - beginner_tutorials
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin package: 'beginner_tutorials'
-- ==> add_subdirectory(beginner_tutorials)
-- Configuring done
-- Generating done
-- Build files have been written to: /home/qkingros/catkin_ws/build
####
#### Running command: "make -j2 -l2" in "/home/qkingros/catkin_ws/build"
####
可以看到首先显示的是每一个space的路径,同时编译之后建立了一些新的文件。
build 文件夹:这是cmake和make用来配置和编译你的包的地方
devel 文件夹:在你安装你的包之前,这里存放着可执行程序和库文件。
他们的路径就是space指定的位置。
官方教程又骗了我一次,到现在还是没有做自己的包。