colcon编译

安装 colcon : sudo apt install python3-colcon-common-extensions。 ROS2的build没有了ROS1中的devel概念

  • colcon build     编译所有包

  • colcon build —packages-select pkg     只编译一个包

  • colcon build —cmake-args -DCMAKE_BUILD_TYPE=Release    

不编译测试单元

colcon test --packages-select YOUR_PKG_NAME --cmake-args -DBUILD_TESTING = 0

运行编译的包的测试

colcon test

  • 允许通过更改src下的部分文件改变install,这样每次修改Python脚本时不必重新 build

colcon build --symlink-install

  • colcon build —symlink-install pkg   

  • colcon build —symlink-install —packages-ignore pkg    

显示CMake中的MESSAGE

colcon build —event-handlers console_direct+ —packages-select test_node

console_direct 换成 console_cohesion 也可以

如果不想编译特定的包,在该包目录里面创建一个名为COLCON_IGNORE文件,这样子这个包就不会被索引到了

问题

  1. 编译时找不到 ament_cmake

source /opt/ros/jazzy/setup.bash

  1. 报警: WARNING:colcon.colcon_ros.prefix_path.catkin:The path ‘/home/user/catkin_ws/install/nav2_map_server’ in the environment variable CMAKE_PREFIX_PATH doesn’t exist

即使删除了install, build, log也无法解决,要想彻底解决只能重建一个工作空间。或者用临时方法,但新终端又会失效

1
2
unset AMENT_PREFIX_PATH
unset CMAKE_PREFIX_PATH