Ubuntu22.04下ROS2 Humble编译px4_ros_com包遇Colcon Build错误
解决ROS2 Humble编译px4_ros_com时的CMake目标导出错误
我在ROS2 Humble环境下编译px4_ros_com包,严格遵循PX4官方教程操作,但执行colcon build编译时触发以下错误:
CMake Error at /home/XXXX/px4_ros_com_ros2/install/px4_msgs/share/px4_msgs/cmake/ament_cmake_export_targets-extras.cmake:18 (message): Failed to find exported target names in '/home/XXXX/px4_ros_com_ros2/install/px4_msgs/share/px4_msgs/cmake/export_px4_msgs__rosidl_generator_cExport.cmake' Call Stack (most recent call first): /home/XXXX/px4_ros_com_ros2/install/px4_msgs/share/px4_msgs/cmake/px4_msgsConfig.cmake:41 (include) CMakeLists.txt:24 (find_package)
已确认以下配置无误:
- Fast-RTPS-Gen版本为1.0.4
- Java版本为11.0.17
- ROS2环境已正确source
可行解决方法:
单独编译px4_msgs包
优先确保px4_msgs的导出目标文件生成完整,单独编译该包:colcon build --packages-select px4_msgs编译完成后重新加载工作空间环境:
source install/setup.bash再尝试编译px4_ros_com:
colcon build --packages-select px4_ros_com清理缓存后从头编译
删除已生成的build、install、log目录,彻底清理编译缓存:rm -rf build install log随后重新编译目标包:
colcon build --packages-select px4_msgs px4_ros_com检查px4_msgs的CMake配置
确认px4_msgs的CMakeLists.txt中包含正确的rosidl生成器配置,示例如下:find_package(rosidl_default_generators REQUIRED) rosidl_generate_interfaces(${PROJECT_NAME} "msg/ExampleMsg.msg" # 其他消息/服务定义文件 DEPENDENCIES builtin_interfaces )确保ament相关的导出配置没有缺失。
验证Fast-RTPS-Gen环境变量
确认Fast-RTPS-Gen的bin目录已添加到系统PATH:export PATH=$PATH:/your/path/to/Fast-RTPS-Gen/bin替换为实际安装路径后,重新source环境再执行编译。
内容的提问来源于stack exchange,提问作者DeCarabas
相关产品推荐
相关产品推荐

