电脑上运行得好好的代码,复制到新电脑就catkin_make不了。
原因:
复制到新电脑后,权限可能没有设置好。
解决方法:
检查包中文件权限,确认都更改为777,或r(可读)/w(可写)/e(可执行)。
若问题仍然存在,考虑删除编译出错的包(如果不是必要的包)。
将电脑上编好的代码复制到包内,但rosrun无法识别文件(即使文件名和原本存在的文件一致)
可能原因:
ros好像编译了以后会认文件?它只会识别原本存在的文件。可能是编译文件中某些代码指定了包中可运行的文件。
解决方法:
备份原文件(就地复制黏贴一份),将原文件的代码全删掉,复制新文件的代码到旧文件中,运行原文件。
程序成功运行,无报错,但一直卡在某一步不继续进行
原因:
由于实现不同功能的代码的topic的名称声明存在差别,导致程序中使用了错误的topic名称,使得函数一直等待错误/不存在的topic发出信息。
解决方法:
使用rosrun rqt_graph rqt_graph
查看正在运行的topic和数据流,找到文件中wait_for_message()
函数真正等待的topic,将topic的名称改对。