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 清理空間。