パッケージのビルド

システムの依存するパッケージが全てインストールされると、作成したパッケージをビルドすることができる。

rosmakeの使用

rosmakemakeコマンドとほとんど同じであるが、ROSの特殊仕様がいくつか盛り込まれている。rosmake beginner_tutorialsを実行すると、beginner_tutorialsパッケージがビルドされるだけでなく、beginner_tutorialsが依存する全てのパッケージが正しい順序でビルドされる。ROS packageを作成する際、rospyとroscpp,std_msgsを依存パッケージとして設定しているので、rosmakeコマンドによりこれらのパッケージ(とこれらのパッケージの依存パッケージなど)もビルドされる。

使用法:

rosmake [package]

練習:

$ rosmake beginner_tutorials

上記のコマンドは終了まで少し時間がかかるかもしれない。実行中に以下のような出力が確認できる。

  • [ rosmake ] No package specified.  Building ['beginner_tutorials']
    [ rosmake ] Logging to directory
    [ rosmake ] /home/dbking/.ros/rosmake_output-2009-09-22-03-17-14
    [ rosmake ] [ 0 of 18  Completed ]
    [rosmake-0] >>> genmsg_cpp >>> [ make ]
    [rosmake-0] <<< genmsg_cpp <<< [PASS] [ 0.39 seconds ]
    [ rosmake ] [ 1 of 18  Completed ]
    ...
    ...
    ...
    [ rosmake ] [ 17 of 18  Completed ]
    [rosmake-0] >>> beginner_tutorials >>> [ make ]
    [rosmake-0] <<< beginner_tutorials <<< [PASS] [ 0.79 seconds ]

Fuerteの場合、依存パッケージが大幅に削減されているので、この処理は殆ど時間もかからず出力も以下のようになる。

  • [ rosmake ] rosmake starting...                                                                     
    [ rosmake ] Packages requested are: ['beginner_tutorials']                                          
    [ rosmake ] Logging to directory /home/alex/.ros/rosmake/rosmake_output-20120603-082414             
    [ rosmake ] Expanded args ['beginner_tutorials'] to:
    ['beginner_tutorials']                         
    [rosmake-0] Starting >>> std_msgs [ make ]                                                          
    [rosmake-1] Starting >>> roslang [ make ]                                                           
    [rosmake-0] Finished <<< std_msgs ROS_NOBUILD in package std_msgs
     No Makefile in package std_msgs  
    [rosmake-1] Finished <<< roslang ROS_NOBUILD in package roslang
     No Makefile in package roslang     
    [rosmake-1] Starting >>> rospy [ make ]                                                             
    [rosmake-2] Starting >>> roscpp [ make ]                                                            
    [rosmake-1] Finished <<< rospy ROS_NOBUILD in package rospy
     No Makefile in package rospy           
    [rosmake-2] Finished <<< roscpp ROS_NOBUILD in package roscpp
     No Makefile in package roscpp        
    [rosmake-2] Starting >>> beginner_tutorials [ make ]                                                
    [rosmake-2] Finished <<< beginner_tutorials [PASS] [ 1.14 seconds ]                                 
    [ rosmake ] Results:                                                                                
    [ rosmake ] Built 5 packages with 0 failures.                                                       
    [ rosmake ] Summary output to directory                                                             
    [ rosmake ] /home/alex/.ros/rosmake/rosmake_output-20120603-082414  

複数パッケージに対するrosmake

rosmakeにより一度に複数のパッケージビルドをすることもできる。

使用法:

rosmake [package1] [package2] [package3]

レビュー

これまで使用してきたコマンドをいくつか列挙しておく。

  • rosdep = ros+dep(endencies) : 依存するパッケージをインストールためのツール
  • rosmake = ros+make : あるROS packageをコンパイルする

Wiki: ja/ROS/Tutorials/rosbuild/BuildingPackages (last edited 2013-07-23 01:58:08 by K.KOJIMA)