现有正常运行的CMake项目添加ROS配置后出现未定义引用错误如何解决
你遇到的是C++链接阶段的符号未找到错误,核心原因是CMake配置中仅将PCL库链接到了main可执行文件,没有把ROS相关依赖库、Boost依赖库一同链接。
修复步骤如下:
- 第一步:修改
CMakeLists.txt中的target_link_libraries配置,将catkin和Boost的库也加入链接列表,把原有的配置:
target_link_libraries (main ${PCL_LIBRARIES})
替换为:
target_link_libraries (main ${PCL_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
- 第二步:清理之前的编译缓存,避免旧配置干扰编译过程:删除ROS工作空间下的
build、devel文件夹,重新执行catkin_make(或你常用的catkin build等编译命令)即可正常编译。
内容的提问来源于stack exchange,提问作者Forquilla
相关产品推荐
相关产品推荐

