Contents
パッケージをビルドする
自分のパッケージのシステム依存がインストールされていれば、新しいパッケージをビルドすることができます。
Note: aptやその他のパッケージマネージャーを使ってROSをインストールした場合はパッケージの依存関係は解消されています。
作業を続ける前に、環境セットアップファイルをsourceコマンドで忘れずに設定しておきましょう。Ubuntuで環境を構築しているなら、以下のようにして設定します:
$ source /opt/ros/hydro/setup.bash
catkin_makeを使う
catkin_makeは標準的なcatkinのワークフローを便利にするコマンドラインツールです。catkin_makeは標準的なCMakeのワークフローのcmake と makeの呼び出しを結合していると想像できるでしょう。
使い方:
#catkinワークスペースの中で $ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
標準的なCMakeのワークフローに慣れていない人は、以下の説明を参考にしてください:
Note: これはCMakeが一般的にどう働くかの単なる一例ですので、以下のコマンドを走らせても動作しません。
# CMakeのプロジェクトの中で $ mkdir build $ cd build $ cmake .. $ make $ make install # (optionally)
このプロセスはそれぞれのCMakeのプロジェクトごとに実行されます。これとは対照的に、catkinプロジェクトではワークスペース単位で一緒にビルドされます。ワークスペース内のゼロから多数までのcatkinパッケージをビルドするには以下のワークフローに従います:
# catkin ワークスペースの中で $ catkin_make $ catkin_make install # (optionally)
上記のコマンドは、srcの中のいかなるcatkinプロジェクトをもビルドします。これはREP128の推奨方針に従っています。もし自分のソースコードがmy_srcといった違う場所にあるときは、catkin_makeを以下のように呼びます:
Note: my_srcが存在しなければ、以下のコマンドを実行しても動作しません。
# catkin ワークスペースの中で $ catkin_make --source my_src $ catkin_make install --source my_src # (optionally)
catkin_makeのより高度な使い方については、 catkin/commands/catkin_makeのドキュメントを参照してください。
自分のパッケージをビルドする
前のチュートリアルパッケージの作成でcatkin workspaceとbeginner_tutorialsと名付けた新しいcatkinパッケージがあるはずです。このcatkinワークスペースの中に入り、srcフォルダの中を見てみましょう。
$ cd ~/catkin_ws/ $ ls src
beginner_tutorials/ CMakeLists.txt@
前のチュートリアルでcatkin_create_pkgのコマンドで作ったbeginner_tutorialsフォルダがあるのが確認できたら、catkin_makeコマンドを使ってパッケージをビルドできます。
$ catkin_make
以下のような出力に似た、cmakeからの出力やmakeの出力を見るでしょう。
Base path: /home/user/catkin_ws Source space: /home/user/catkin_ws/src Build space: /home/user/catkin_ws/build Devel space: /home/user/catkin_ws/devel Install space: /home/user/catkin_ws/install #### #### Running command: "cmake /home/user/catkin_ws/src -DCATKIN_DEVEL_PREFIX=/home/user/catkin_ws/devel -DCMAKE_INSTALL_PREFIX=/home/user/catkin_ws/install" in "/home/user/catkin_ws/build" #### -- The C compiler identification is GNU 4.2.1 -- The CXX compiler identification is Clang 4.0.0 -- Checking whether C compiler has -isysroot -- Checking whether C compiler has -isysroot - yes -- Checking whether C compiler supports OSX deployment target flag -- Checking whether C compiler supports OSX deployment target flag - yes -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Using CATKIN_DEVEL_PREFIX: /tmp/catkin_ws/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/groovy -- This workspace overlays: /opt/ros/groovy -- Found PythonInterp: /usr/bin/python (found version "2.7.1") -- Found PY_em: /usr/lib/python2.7/dist-packages/em.pyc -- Found gtest: gtests will be built -- catkin 0.5.51 -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing packages in topological order: -- ~~ - beginner_tutorials -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ add_subdirectory(beginner_tutorials) -- Configuring done -- Generating done -- Build files have been written to: /home/user/catkin_ws/build #### #### Running command: "make -j4" in "/home/user/catkin_ws/build" ####
catkin_makeがそれぞれどこの'spaces'を使っているかのpathsを最初に表示していることに注意してください。この領域についての詳細はREP128とwikiのcatkinワークスペースについてのドキュメントcatkin/workspacesに記載されています。注目すべき重要なことは、自分のcatkinワークスペース内に作られたフォルダがこれらのデフォルト値となっていることです。lsを使って見てみましょう。
$ ls
build devel src
buildフォルダはbuild spaceのデフォルト位置で、cmake と makeが環境設定しパッケージをビルドする場所です。develフォルダはdevel spaceのデフォルト位置で、自分のパッケージのインストールに先んじて、実行ファイルとライブラリが入る場所です。