CMake无法找到ROS包ecl_geometry的解决方法求助
解决ROS+PCL项目的CMake编译错误
嘿,我看了你遇到的编译问题,主要是两个核心点导致的:缺依赖包和CMakeLists的小疏漏,下面一步步帮你搞定:
1. 搞定缺失的ecl_geometry包
错误里反复提到找不到这个包的配置文件,其实在ROS Kinetic里,ecl_geometry是ecl_core元包的一部分,你直接安装这个元包就行:
打开终端运行这两条命令:
sudo apt-get update sudo apt-get install ros-kinetic-ecl-core
安装完成后,CMake就能自动找到它的配置文件了。
2. 修复CMakeLists的版本声明问题
你的CMakeLists开头少了最关键的cmake_minimum_required指令,这会触发CMake的强制检查错误。你需要在文件最顶部加上这一行(必须放在project(tracker)之前):
cmake_minimum_required(VERSION 2.8.3) # ROS Kinetic推荐用这个版本,你也可以写3.11.2匹配你的本地环境
额外的小坑提醒
我看你的CMakeLists里还有两个容易踩坑的细节:
- 你写的
set(CMAKE_CXX_FLAGS “-std=c++0x ${CMAKE_CXX_FLAGS}”)里的引号是中文全角引号,要改成英文半角的",不然CMake会把这个编译参数解析错误,导致后续编译失败。 - PCL组件列表里的
2d看起来不太对,PCL官方组件里没有单独的2d项,如果是笔误建议直接去掉,或者确认是不是features_2d这类正确的组件名,避免不必要的依赖查找错误。
修改后的CMakeLists开头示例:
cmake_minimum_required(VERSION 2.8.3) project(tracker) set(CMAKE_BUILD_TYPE Release) set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")
做完这些,回到你的catkin工作空间,重新执行catkin_make或者catkin build,应该就能顺利编译了。
内容的提问来源于stack exchange,提问作者hello_nezumi
相关产品推荐
相关产品推荐

