Comment on page
Catkin Tools
- Installation:
sudo apt install python-catkin-tools
- It's time to migrate from
catkin_make
tocatkin build
!
rosbuild
was the very first build tool developed by ROS community- Then comes
catkin_make
to help automate the merged build process at the top level - To address the numerous drawbacks of the merged build process,
catkin_make_isolated
was introduced to isolated build process for each package - Finally,
catkin build
is the most recent method to build packages, with improved performance
- In addition to the
merged
andisolated
devel space layouts provided bycatkin_make
andcatkin_make_isolated
, respectively,catkin_tools
provides a defaultlinked
layout which enables robust cleaning of individual packages from a workspace. - Specifically, catkin packages are built in the
.private
hidden directory at the root of the devel space. Files in devel space are symbolic links to files in.private
folder. - Additionally, to avoid race condition on setup files (e.g.,
setup.bash
) and other problems in parallelize building, inlinked
layout only one package generates these files. A package namedcatkin_tools_prebuild
may be built first (before all other packages) for this purpose. - To use
merged
layout, run commandcatkin config --merge-devel
.
#mkdir -p ~/catkin_ws/src
#cd ~/catkin_ws
catkin init # cf. catkin_init_workspace
catkin config --extend /opt/ros/melodic # extend explicitly
catkin config --merge-devel # linked --> merged
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
#cd src
catkin create pkg example
# cf. catkin_create_pkg example
catkin create pkg example --catkin-deps std_msgs
# cf. catkin_create_pkg example std_msgs
# deps will be added to catkin COMPONENTS
catkin create pkg example --system-deps PCL
# no corresponding command in old style (catkin_make system)
# will generate a new line: find_package(PCL REQUIRED)
catkin list # List the packages in the workspace
catkin build # can run at all levels (~/catkin_ws, ~/catkin_ws/src, within pkg)
catkin build example_pkg # build only this package
cd ~/catkin_ws/src/example_pkg && catkin build --this
#echo 'source ~/catkin_ws/devel/setup.bash' >> ~/.bashrc
catkin clean
catkin clean example_pkg # clean only this package
WARNING: Your current environment's CMAKE_PREFIX_PATH is different from the
cached CMAKE_PREFIX_PATH used the last time this workspace was built.
If you want to use a different CMAKE_PREFIX_PATH you should call `catkin clean`
to remove all references to the previous CMAKE_PREFIX_PATH.
- This warning can be ignored and it will continue to use the cached path. It often happens after new workspaces are established and setup files are sourced.
- Alternatively, it can be resolved by explicitly extending other workspaces.
catkin config --extend /opt/ros/melodic
- to revert,
catkin config --no-extend
Last modified 2yr ago