加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于rosmake 和catkin_make的相关编译

(2014-04-17 11:12:16)
标签:

catkin_make

rosmake

分类: ROS
rosmake是用在rosbuild创建工作空间的编译,rosbuild是ROS传统的编译系统,属于老版本。而catkin_make 是用于catkin 所创建的工作空间。
    对于两种创建工作,可以参考大神的原创配置ROS的工作空间。
下面主要讲,从开源网站上git 或者svn下来的代码编译时,注意哪些要点:
    必须清楚 Makefile和package.xml的区别。它们都是存放相关节点等依赖关系。编译时必须区分。Makefile是rosbuild工作空间编译的。package.xml是catkin_make编译的,也就是说,如果项目中存在Makefile这个文件,就必须让它在rosbuild工作空间中编译。编译流程:首先在放package目录下:git clone [path]克隆源码-》然后rosdep install [package_name]-》cd [package_name]—》rosmake。注意是rosmake。而不是catkin_make.编译可能报错,一可能先要make clean在编译。如果是依赖包报错,一般是依赖包不存在,或者没有安装,所以看Makefile文件中依赖哪些包。报错哪个包,然后到官网上git clone或者svn这个包,编译就可以了。
   如果项目中存在package.xml.那么久必须在catkin_make创建的工作空间下git clone或者svn。然后再工作空间顶层目录下,输入命令:catkin_make.就可以编译了。编译可能报错,一般是依赖包不存在,或者没有安装,所以看package.xml文件中依赖哪些包。报错哪个包,然后到官网上git clone或者svn这个包,编译就可以了。
   编译总结:一、catkin_make编译起来如果不指定编译那个package的话,它是编译工作空间中所以的包。如果有个包编译出错,会影响到其他包的编译。所以最好指定编译。使用catkin_make clean package_name 然后再执行catkin_make package_name命令。
   二、如果你从原有的工作空间中拷贝包到另一个工作空间或者另一个ros系统上,那么可能编译出现错误。可以首先,执行clean ,然后
对于catkin_make包,执行catkin_make install package_name,如果是rosmakepackage,那么执行rosdep install package_name。最后在执行catkin_make package_name 或者rosmake package_name。



----------------------------------------------------------------

欢迎大家转载我的文章。

转载请注明:转自听雨轩_Mrfu
博客地址是:http://blog.sina.com.cn/u/3285404150


 


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有