Construire des Packages
Une fois que le système de dépendances de votre package est installé, vous pouvez maintenant construire votre nouveau package.
Note: Si vous avez installé ROS en utilisant apt ou un manager de paquets, vous devriez avoir toutes vos dépendances.
Avant de continuer pensez à "sourcer" votre environnement si ce n'est pas déjà fait. Sur Ubuntu se serait quelque chose comme ça :
$ source /opt/ros/groovy/setup.bash
Utiliser catkin_make
catkin_make c'est un outil en ligne de commande qui ajoute un certain confort à la procédure standard catkin. Vous pouvez imaginer ça : catkin_make combine l'appel à cmake et make à la norme CMake.
Utilisation :
# In a catkin workspace $ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
Pour ceux qui ne sont pas familier avec la procédure standard CMake, elle se décompose comme suit :
Note: Si vous exécutez les commandes ci-dessous elles ne marcheront pas, c'est juste à titre d'exemple pour montrer comment fonctionne Cmake de manière générale.
# In a CMake project $ mkdir build $ cd build $ cmake .. $ make $ make install # (optionally)
Cette procédure est appliqué pour chaque projet Cmake. En comparaison des projets catkin qui peuvent être construits ensemble dans le workspace. Construire zéro ou plusieurs packages catkin dans un workspace suit la procédure suivante :
# In a catkin workspace $ catkin_make $ catkin_make install # (optionally)
Les commandes ci-dessus construirons tous les projets présent dans le dossier src. Cela fait suite aux recommandations formulées par REP128. Si votre code source est à un endroit différent, appelé my_src alors vous pouvez appeler catkin_make comme ceci :
Note: Si vous exécutez les commandes suivantes elles ne marcheront pas, si le dossier my_src n'existe pas.
# In a catkin workspace $ catkin_make --source my_src $ catkin_make install --source my_src # (optionally)
Pour une utilisation plus avancée de catkin_make voir la documentation : catkin/commands/catkin_make
Construire Son Package
Pour les lecteurs de cette page qui voudraient construire leur propre code, regardez aussi un des tutoriels suivants (C++)/(Python) puisque vous devrez peut-être modifier le fichier CMakeLists.txt.
Vous devriez déjà avoir un espace de travail catkin (catkin workspace) et un nouveau package catkin appelé beginner_tutorials de la leçon précédente, Créer un Package. Allez dans l'espace de travail catkin (catkin_ws) si vous n'y êtes pas déjà et regarder dans le dossier src :
$ cd ~/catkin_ws/ $ ls src
beginner_tutorials/ CMakeLists.txt@
Vous devriez voir qu'il ya un dossier appelé beginner_tutorials que vous avez créé avec catkin_create_pkg dans le tutoriel précédent. Nous pouvons maintenant construire ce package en utilisant catkin_make :
$ catkin_make
Vous devriez voir sur votre console la sortie de cmake et aussi de make , qui devrait être similaire à ceci :
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" ####
Notez que catkin_make affiche en premiers quels sont les chemins qu'il utilise pour chacun des 'espaces'. Les espaces sont décrits dans le REP128 et par la documentation de catkin/workspaces. La chose importante à noter est qu'en raison de ces valeur par défaut, plusieurs dossiers ont été créés dans votre espace de travail catkin. Regardez avec ls :
$ ls
build devel src
Le dossier build est l'emplacement par défaut de l'espace de construction build space et c'est là que cmake et make sont appelés à configurer et construire vos packages. Le dossier devel est l'emplacement par défaut de l'espace de développement devel space, qui est l'endroit où vos exécutables et les bibliothèques de vos packages vont être installés.