ros2踩坑记

1 篇文章 0 订阅

在构建一个激光雷达点云的包时,遇到一个很奇怪的问题,包能构建成功,但是使用ros2 run 时,无法用Tab键补全可执行文件名(包名是可以补全的),手动输入 ros2 run <package_name>  <executable_name> 会提示:

No executable found

这个问题困扰了我好久,最终在这里 找到了原因。

 原来我的CMakeLists.txt是这样的(部分)

install(
        DIRECTORY include/
        DESTINATION include
)
install(
        DIRECTORY    launch/
        DESTINATION  share/launch)

install(TARGETS cloud_node
        EXPORT export_cloud_node
        RUNTIME DESTINATION cloud_node/bin/
        ARCHIVE DESTINATION cloud_node/lib/static/
        LIBRARY DESTINATION cloud_node/lib/shared/
        INCLUDES DESTINATION cloud_node/include/
        )
install(TARGETS
        cloud_node
        DESTINATION lib/cloud_node
        )

 

修改后

install(
        DIRECTORY include/
        DESTINATION include
)
install(
        DIRECTORY    launch/
        DESTINATION  share/launch)

install(TARGETS cloud_node
        EXPORT export_cloud_node
        RUNTIME DESTINATION lib/${PROJECT_NAME}
        ARCHIVE DESTINATION cloud_node/lib/static/
        LIBRARY DESTINATION cloud_node/lib/shared/
        INCLUDES DESTINATION cloud_node/include/
        )
install(TARGETS
        cloud_node
        #executables must be installed at lib/{PROJECT_NAME},otherwise ros2 run can't find it
        DESTINATION lib/${PROJECT_NAME}
        )

可执行文件的安装位置改了以后就可以找到可执行文件了

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值