ROS航海计划:P(二)

@catkin_make错误: Parse error. Expected a command name, got unquoted argument with text
“/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake”

编译环境及场景

在这里插入图片描述
Ubuntu18.04,ros melodic
文件夹test下src中的func_pkg为功能包,编译时,在test/下执行catkin_make命令

踩坑

搜索发现很多人遇到过 Parse error. Expected a command name, got unquoted argument with text……的错误,这个错误的意思是说cmakelist.txt 中的命令多了什么不应该出现的字符,但大家一般都是多了个空格之类的,而我的是/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake,这就很诡异.

分析与解决

使用catkin_make时,ros系统正常情况下会自动在test/src/func_pkg/下创建一个CMakeList.txt,并且symlink到系统的/opt/ros/(你的ros版本名称)/share/catkin/cmake/toplevel.cmake。

所以用vim打开test/src/func_pkg/CMakeList.txt,按理来说我会看到/opt/ros/melodic/share/catkin/cmake/toplevel.cmake,但我打开时,看到的是报错的那一句,也就是说出现了错误的ros版本名称kinetic.

在ros自动创建的CMakeList.txt中不应该出现这种错误,于是我直接打开了symlink路径下的toplevel.cmake文件,发现在我的这个路径下的toplevel.cmake里竟然就是这句/opt/ros/kinetic/share/catkin/cmake/toplevel.cmake!

解决方法就是直接从其他地方拷贝一个相同的ros系统中原始的toplevel.cmake过来,就可以正常编译了!

p.s.真是一个暴哭,不知道什么时候竟然不小心改了系统文件,害得我好久没用过最初的catkin_make,很长一段时间直接catkin build……终于又回到最初的起点啦,哈哈

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

steptoward

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值