catkin工作区是一个用于修改,构建和安装catkin软件包的文件夹。以下是典型catkin工作空间布局:
workspace_folder/ -- WORKSPACE
src/ -- SOURCE SPACE
CMakeLists.txt -- The 'toplevel' CMake file
package_1/
CMakeLists.txt
package.xml
...
package_n/
CATKIN_IGNORE -- Optional empty file to exclude package_n from being processed
CMakeLists.txt
package.xml
...
build/ -- BUILD SPACE
CATKIN_IGNORE -- Keeps catkin from walking this directory
devel/ -- DEVELOPMENT SPACE (set by CATKIN_DEVEL_PREFIX)
bin/
etc/
include/
lib/
share/
.catkin
env.bash
setup.bash
setup.sh
...
install/ -- INSTALL SPACE (set by CMAKE_INSTALL_PREFIX)
bin/
etc/
include/
lib/
share/
.catkin
env.bash
setup.bash
setup.sh
...
catkin工作区最多可包含四个不同的空间,每个空间在软件开发过程中起不同的作用。
1.1Source Space
Source Space包含catkin包的源代码。可以在此处提取/签出/克隆要构建的包的源代码。此空间中的每个文件夹都包含一个或多个catkin包。通过配置,构建或安装,此空间保持不变。Source Space的根目录下包含一个CMakeLists.txt文件链接到catkin顶层。在配置工作区中的catkin项目期间,CMake将调用此文件。可以通过在Source Space目录中调用catkin_init_workspace来创建它。
1.2Build Space
Build Space是调用CMake以在源空间中构建catkin包的地方。CMake和catkin将缓存信息和其他中间文件保存在此处。构建空间不必包含在工作空间内,也不必在源空间之外,但建议这样做。
1.3Development(Devel)Space
Devel Space是在安装之前放置构建目标的位置。在DevelSpace中组织目标的方式与它们的布局相同。这提供了一个有用的测试和开发环境,不需要调用安装步骤。develspace的位置由一个名为CATKIN_DEVEL_PREFIX的catkin特定CMake变量控制,默认为<build space> / develspace。因为如果用户在构建文件夹中调用cmake ..并且修改了当前目录之外的内容,则可能会让CMake感到困惑。但是,建议将devel space目录设置为构建空间目录的对等项。
1.4 Install Space
构建目标后,可以通过调用安装目标将它们安装到安装空间中,通常使用make install。安装空间不必包含在工作空间中。由于安装空间是由CMAKE_INSTALL_PREFIX设置的。它默认为/ usr / local,不应该使用它(因为卸载几乎不可能,并且使用多个ROS分发也不起作用)。
1.5 Result space
当引用可以是开发空间或安装空间的文件夹时,使用result space 清理空间。