当前位置: 首页 > news >正文

ERROR: cannot launch node of type工作空间编译提示找不到功能包问题(已解决)

(这里总结了大部分网上主流的解决方案)

前两天加了个功能,编译发现出现如下问题

ERROR: cannot launch node of type [decision/decision]: Cannot locate node of type [decision] in package [decision]. Make sure file exists in package path and permission is set to executable (chmod +x)

图中 ERROR: cannot launch node of type后面指的是你的[功能包/节点],意思就是说找不到这个节点,打不开这包

也就是说看似编译通过,但是没有生成​可执行文件

接下来我们可以通过下面这几个方式来查看我们的具体问题

一.查找问题

(1)你可以通过rosrun命令来查询是不是存在

rosrun [package_name] [node_name]

如果可以查询到,那么建议你将工作空间下的devel和build删除,重新通过catkin_make指令编译就好了,然后在你正式运行.launch文件之前要记得在当前工作空间setup一下

source devel/setup.bash

(2) rosrun命令找不到

如果你也和我一样,rosrun命令找不到,那你可以去你的工作空间devel/lib/下面查找,看有没有你所需要的文件,针对我刚才的报错查找有没有decision,那就三你也可以在工作空间中通过以下指令查看

ls devel/lib

检查是否生成了可执行文件,如果没有生成,删除dev和build文件夹,重新编译。

如果还是没有,那就问题大了,因为以上就是网上主流的全部解决方案,所以接下来和我一样一步步查错吧(已解决)

因为我们是devel/lib/下面没有,所以我当时就在想是不是cmake问题,因为之前为了加log功能,我有做修改,然后就针对这个问题去查找了(cmake编译后devel中没有)词条,成功看到了一个大佬解决方案,接下来,我这里也转述下

其实很简单就是我们的cmake修改后我给catkin_package()丢了,我们在CMakeLists.txt文件中重新添加catkin_package()命令就行修改后如下。

具体的catkin_package要如何添加,我将文档内容作了翻译,友友作为参考

  1. catkin_package宏:这个宏用于为你的包生成 CMake 配置文件。它可以声明一些信息,以便传递给依赖于你的包的其他项目。
  2. INCLUDE_DIRS:如果你的包包含头文件,可以取消注释这一行来指定包含目录。这样,依赖于你的包的项目就可以找到这些头文件。
  3. LIBRARIES:如果你在这个项目中创建了其他项目也需要的库,可以在这里列出。
  4. CATKIN_DEPENDS:列出依赖于你的包的其他 Catkin 包。
  5. DEPENDS:列出你的项目所需的系统依赖项,这些依赖项也可能被依赖于你的项目的其他项目所需要。


http://www.mrgr.cn/news/20191.html

相关文章:

  • 【为项目做准备】Linux网络编程重点知识(项目通用知识)
  • 大模型研发全揭秘:数据决定模型成败!如何确保数据采集不踩坑?
  • 【Qt】字体对话框QFontDialog
  • 【转载】golang内存分配
  • 美股科技巨头风云再起:苹果与英伟达的双面镜
  • 【word版】为什么敲击空格键盘时会删除文字
  • python-计数问题
  • 队列处理舞会配对问题
  • 记录一下uni-app 打包小程序设置页面的安全距离
  • 把时间当作朋友
  • 每日最新AIGC进展(59):谷歌提出关键帧插值算法、谷歌研究院提出用实时游戏画面生成算法、中国科学院大学提出复杂场景图像生成算法
  • IT6161 MIPI to HDMI
  • P1786 帮贡排序
  • 河南建筑装饰工程设计专项资质转让注意关键
  • Linux:vim编辑器的基本使用
  • Linux启用client和host之间共享目录的功能
  • 理解 `ThreadLocal` 的线程隔离机制
  • 经验笔记:服务治理框架
  • 某公司一个月窃取我国敏感数据500GB
  • quarkus解说