You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下rosrun无法运行C++版ROS Hello World程序求助

解决Windows下ROS rosrun找不到可执行文件的问题

核心原因

你的可执行文件生成在build目录而非ROS默认识别的devel目录,导致环境变量没关联到该文件——ROS只会从devel/lib/<包名>或install/lib/<包名>路径读取可执行文件。


分步解决方法

1. 检查CMakeLists.txt配置

确保功能包的CMakeLists.txt里有正确的安装指令:

  • 确认已添加可执行文件编译指令:
    add_executable(hello_world_node src/hello_world_node.cpp) # 替换成你的实际源文件路径
    
  • 必须加上install指令,把可执行文件复制到devel目录:
    install(TARGETS hello_world_node
      RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
    )
    

2. 重新编译并加载环境

  • 打开ROS命令提示符,进入工作空间根目录:
    cd c:\opt\ros\noetic\catkin_ws
    
  • 清理旧编译文件后重新编译:
    catkin_make clean
    catkin_make
    
  • 加载devel目录的环境变量(每个新终端都要执行):
    devel\setup.bat
    

    提示:如果用catkin build替代catkin_make,就把上面的catkin_make换成catkin build再执行setup.bat。

3. 验证环境配置

执行以下命令确认ROS能识别你的包和可执行文件:

  • 检查包是否在ROS路径中:
    rospack find hello_world_pkg
    
    正常会输出c:\opt\ros\noetic\catkin_ws\src\hello_world_pkg
  • 检查可执行文件是否在指定路径:
    dir c:\opt\ros\noetic\catkin_ws\devel\lib\hello_world_pkg
    
    能看到hello_world_node.exe就说明配置有效。

4. 临时测试方案

如果以上步骤无效,可直接用绝对路径指定可执行文件运行:

rosrun hello_world_pkg c:\opt\ros\noetic\catkin_ws\devel\lib\hello_world_pkg\hello_world_node.exe

5. 多工作空间优先级检查

如果你有多个catkin工作空间,确保当前工作空间的setup.bat是最后加载的——ROS环境变量会覆盖之前的配置,必须保证你的自定义工作空间在ROS核心包之后加载。


内容的提问来源于stack exchange,提问作者Encipher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:22:24