Contents
Xây dựng một gói
Miễn là tất cả các gói phụ thuộc đã được cài đặt, bây giờ chúng ta có thể xây dựng gói mới.
Chú ý: Nếu bạn cài đặt ROS dùng apt hoặc trình quản lý gói khác, bạn có thể có tất cả gói phụ thuộc.
Trước khi tiếp tục nhớ cài đặt tập tin nguồn cho môi trường của bạn nếu bạn chưa có. Trên Ubuntu sẽ giống như sau:
$ source /opt/ros/%YOUR_ROS_DISTRO%/setup.bash $ source /opt/ros/kinetic/setup.bash (cho phiên bản ROS Kinetic)
Dùng catkin_make
catkin_make Là một công cụ dòng lệnh với nhiều tiện ích . Bạn tưởng tưởng rằng catkin_make kết hợp giữa việc gọi cmake và make trong qui trình làm việc chuẩn của CMake.
Dùng:
# Trong một catkin workspace $ catkin_make [make_targets] [-DCMAKE_VARIABLES=...]
Nếu bạn không quen làm việc với CMake workflow, các bước sẽ tiến hành như sau:
Chú ý: Nếu bạn chạy dòng lệnh dưới sẽ không thành công, chỉ là ví dụ minh họa các bước mà CMake sẽ thực thi.
# In a CMake project $ mkdir build $ cd build $ cmake .. $ make $ make install # (optionally)
Đây là qúa trình chạy cho mỗi dự án CMake. Trái ngược với dự án catkin có thể xây dựng với nhau trong workspaces. Building zero to many catkin packages in a workspace follows this work flow:
# In a catkin workspace $ catkin_make $ catkin_make install # (optionally)
Các lệnh trên sẽ xây dựng bất kỳ dự án catkin tìm thấy trong thư mục src. Điều này tuân theo các khuyến nghị của REP128. Nếu mã nguồn của bạn ở một nơi khác, ví dụ như my_src thì bạn sẽ gọi catkin_make như sau:
Chú ý: Nếu bạn chạy dòng lệnh dưới sẽ không thành công, vì đường dẫn my_src không tồn tại.
# In a catkin workspace $ catkin_make --source my_src $ catkin_make install --source my_src # (optionally)
catkin_make có thể cung cấp nhiều tính năng hơn, xem tài liệu: catkin/commands/catkin_make
Xây dựng gói
Bạn đã có một không gian làm việc catkin workspace và một gói catkin mới gọi là beginner_tutorials từ hướng dẫn trước đó, Creating a Package. Trỏ vào vùng làm việc catkin nếu bạn chưa có và tìm trong thư mục src:
$ cd ~/catkin_ws/ $ ls src
beginner_tutorials/ CMakeLists.txt@
Bạn sẽ thấy có một thư mục gọi là beginner_tutorials mà bạn đã tạo với catkin_create_pkg trong hướng dẫn trước đó. Bây giờ chúng ta có thể xây dựng gói đó sử dụng catkin_make:
$ catkin_make
Bạn sẽ thấy rất nhiều thông tin xuất ra từ cmake và make, tương tự như sau:
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/kinetic -- This workspace overlays: /opt/ros/kinetic -- 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" ####
Lưu ý rằng catkin_make lần đầu tiên hiển thị những đường dẫn mà nó sử dụng cho mỗi khoảng trống. Các không gian được mô tả trong REP128 và bằng tài liệu về các không gian làm việc catkin trên wiki: catkin/workspaces. Điều quan trọng cần lưu ý là vì những giá trị mặc định này, một số thư mục đã được tạo ra trong vùng làm việc catkin của bạn. Hãy xem ls:
$ ls
build devel src
Thư mục build là vị trí mặc định của không gian xây dựng (build space) và là nơi cmake và make được gọi để cấu hình và xây dựng các gói của bạn. Thư mục devel là vị trí mặc định của không gian phát triển (devel space), nơi mà tệp thực thi và thư viện của bạn đi trước khi bạn cài đặt gói của mình.