パッケージのビルド
システムの依存するパッケージが全てインストールされると、作成したパッケージをビルドすることができる。
rosmakeの使用
rosmakeはmakeコマンドとほとんど同じであるが、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をコンパイルする