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

rosrun运行C++文件报syntax error near unexpected token错误如何解决

问题根因

你遇到的报错和C++代码语法无关,核心是调用方式错误:

  • rosrun的作用是查找ROS功能包下的可执行文件并运行,不支持直接执行C++源码文件
  • 当前报错是Shell将.cpp文件误识别为Shell脚本解析,自然无法识别C++语法规则,才抛出了语法错误提示

修复步骤

  1. 打开myrobot功能包下的CMakeLists.txt,添加C++节点的编译规则:
# 确保find_package段已经引入roscpp、std_msgs依赖
find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)

# 添加以下两行编译规则,路径替换为你keys.cpp的实际存放路径
add_executable(keyboard_node scripts/Controls/Keys.cpp)
target_link_libraries(keyboard_node ${catkin_LIBRARIES})
  1. 回到ROS工作空间根目录执行编译并刷新环境变量:
catkin_make
# 若使用catkin tools则执行 catkin build myrobot
source devel/setup.bash
  1. 编译完成后调用生成的可执行文件即可:
rosrun myrobot keyboard_node

额外说明

只有Python编写的ROS节点支持直接rosrun运行源码文件,需要满足两个前提:给.py文件添加可执行权限、文件头部添加#!/usr/bin/env python3解释器声明;C++编写的ROS节点必须经过编译生成可执行文件后才能运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:54:03