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:列出你的项目所需的系统依赖项,这些依赖项也可能被依赖于你的项目的其他项目所需要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值