2、ROS使用工作空間
阿新 • • 發佈:2019-01-30
一、引言
本篇中,我們首先會展示catkin_make如何構建package,然後演示在不使用catkin_make的情況下手動構建,從而加深對catkin_make工作流程的理解。
二、使用catkin_make
1、使用catkin_make的典型工作流是這樣的:
$ cd ~/catkin_ws/src/beginner_tutorials/src
# 新增/編輯 原始碼
$ cd ~/catkin_ws/src/beginner_tutorials
# 更新 CMakeFiles.txt 使其與原始碼的更改同步
$ cd ~/catkin_ws
$ catkin_make -DCMAKE_BUILD_TYPE=Release
可以看到的devel的目錄結構如下:
devel/
├── env.sh
├── lib
│ └── pkgconfig
│ ├── beginner_tutorials.pc
│ ├── newpack.pc
│ └── turorials.pc
├── setup.bash
├── setup.sh
├── _setup_util.py
├── setup.zsh
└── share
└── beginner_tutorials
└── cmake
├── beginner_tutorialsConfig.cmake
└── beginner_tutorialsConfig-version.cmak
這將在構建空間(~/catkin_ws/build)中構建原始碼空間 (~/catkin_ws/src)中的任何package。原始碼將保留在原始碼空間(~/catkin_ws/src)中,而庫檔案、可執行檔案等由原始碼生成的檔案將被放置在構建空間(~/catkin_ws/build)中。
如果想要像使用make命令一樣使用引數,你需要這樣使用catkin_make:
$ cd ~/catkin_ws
$ catkin_make install
這等價於:
cd ~/catkin_ws/build && make install
這將會建立一個’install’資料夾,且包含自己的setup.*sh檔案,執行其中之一,當前的環境會由devel空間替換為install空間。
注意,只能使用install空間和devel空間之一。
二者優劣比較:
- 使用devel空間,不必每次都執行install,這在使用python和執行測試時很有意義。
- 使用install空間,則可以方便的釋出package和及將package安裝到系統。
使用引數將寫好的package安裝到系統:
# This is an example
$ cd ~/catkin_ws
$ catkin_make install -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy # might need sudo
2、新增包到工作空間
使用如下命令在已編譯過的工作空間中新增新的package:
$ catkin_make --force-cmake
如果想檢視catkin_make的具體呼叫的命令,使用如下引數:
$ catkin_make -DCMAKE_VERBOSE_MAKEFILE=ON
三、不使用catkin_make構建
留待後續課程深入。