catkin_make时报错找不到xxxx.h头文件

在ROS开发中遇到catkin_make报错找不到头文件的问题,通常是由于头文件路径未正确设置或引用不准确导致。解决方法包括:确保头文件存在于指定的include目录,正确设置CMakeLists中的INCLUDE_DIRS,以及在源码中使用正确的#include语法。遵循这些步骤可以解决ROS项目中自定义库头文件包含的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Catkin unable to include custom libraries

报错内容:

/home/firefly/eai_ws/src/square/square_goal_service/src/service_server.cpp:3:53: 
fatal error: square_goal_service/square_goal_service.h: No such file or directory
没有那个文件或目录#include <square_goal_service/square_goal_service.h>

首先查找头文件(file)是否存在

You should create a folder named include/ < name of package > / (include/proj_utils in your case) where you put all the header files (*.hpp) of the package.

但是实际上该文件是存在的,那么查看是否告诉了编译器文件的路径!

 

其次路径是否设置正确(directory)

Then the package that exports the library should have the following in the CMakeLists to be able to export the header files:

 

catkin_pa
引用\[1\]:笔者手比较贱,直接删了opencv里面的lib,直接删了废纸篓里的文件,没在终端卸载。要重新下一次,然后brew啥也下不了,brewinstall xxx直接报出这个错误Error: No such file or directory - /usr/local/var/homebrew/linked/xxx,解决办法是删除系统目录下的var里面的homebrew,我电脑的路径是/usr/local/var/homebrew,该文件里面全是要下载包建立的软连接,无图无真相,贴图看看效果: 。\[1\] 引用\[2\]:问题说明:初学ROS候可能经常会搬运别人的工作空间直接使用,或者将自己这台电脑上的工作空间复制粘贴到另一台电脑上,但是直接使用catkin_make来进行编译会出现CMake Error: The source directory ““ does not exist的错误 。\[2\] 引用\[3\]:出现这种问题是说明没有到相关的文件,例如: <gio/gio.h> No such file or directory 查看CMakeLists.txt, 发现包含的该头文件确实没有 include 进去 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/_dev-fs/usr/include/libmm-glib)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/_dev-fs/usr/include/ModemManager)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/_dev-fs/usr/include/libnm) 后加入 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/_dev-fs/usr/include/gio) 这个文件夹是确实存在的,里面的gio.h也存在,但是还是报同样的问题,弄了半天都卡在这里了,结果最后发现应该是路径上的问题, 应为在预处理依赖头文件的过程中是按照你加入的路径去的(<gio/gio.h> 前面有个文件夹gio),也就是include_directories 进去目录是作为寻的根目录,也就是起始目录, 结果到的是 .../_dev-fs/usr/include/gio/gio/gio.h, 这个路径当然不存在,所有应该是加入 include_directories(${CMAKE_CURRENT_SOURCE_DIR}/_dev-fs/usr/include) 即路径是 .../_dev-fs/usr/include/gio/gio.h 这样就可以到了,问题解决!!!!!!!!!!!!!!!!! 转载于:https://www.cnblogs.com/Jokeyyu/p/9046022.html。\[3\] 问题:\[Errno 2\] No such file or directory: '/home/neousys/.local/bin/cmake': '/home/neousys/.local/bin/cmake' 回答: 这个错误通常是由于不到指定的文件或目录引起的。根据引用\[1\]中的描述,可能是由于删除了系统目录下的var里面的homebrew导致的。你可以尝试重新安装homebrew并删除之前的软连接来解决这个问题。另外,根据引用\[2\]和引用\[3\]的描述,这个错误也可能是由于路径问题引起的。你可以检查路径是否正确,并确保相关文件或目录存在。如果路径有误,你可以尝试修改路径或添加正确的路径来解决问题。 #### 引用[.reference_title] - *1* [用homebrew下载cmake出现Error: No such file or directory - /usr/local/var/homebrew/linked/cmake错误解决办法](https://blog.csdn.net/weixin_58475035/article/details/121887480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [如何解决CMake Error: The source directory“xxxx”does not exist](https://blog.csdn.net/intfloatchar/article/details/125139309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [cmake 成功后, make 出现 No such file or directory 问题解决](https://blog.csdn.net/banpozhi3270/article/details/101074058)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值