假設我們要在a_package中引用b_package裡自定義的my_message.msg.
方法1: 可直接通過新增依賴的方式解決.
首先在建立包時新增b_package:
catkin_create_pkg std_msgs roscpp rospy b_package
然後通過以下命令編譯b_package:
catkin_make -dcatkin_whitelist_packages='b_package'
之後在a_package中新建的程式此時便可以自動載入出msg檔案所對應的標頭檔案了.
最後,全域性編譯整個工作空間:
catkin_make -dcatkin_whitelist_packages=''
注:方法1暫未實踐
方法2: 手動修改a_package資料夾中的cmakelists.txt和package.xml檔案
首先在a_package的cmakelists.txt檔案中的find_package部分新增b_package:
find_package(catkin required components
roscpp
rospy
std_msgs
b_package #新增這一條
)
然後將以下**取消注釋(刪除#):
include_directories(
include
$)
然後在package.xml檔案中新增以下**,注意需要根據實際情況按相應的格式配置:
b_package
b_package
b_package
之後,我們需要先編譯要引用檔案的功能包b_package.只要編譯過就行,不一定要使用以下命令:
catkin_make -dcatkin_whitelist_packages='b_package'
最後編譯a_package即可.
注:方法2已實踐有效
參考部落格:
建立乙個ROS包
先前筆者不知道catkin到底是個什麼東東,後來終於在官方 上找到了答案,原來catkin是ros的乙個官方的編譯構建系統,是原本的ros的編譯構建系統rosbuild的後繼者。catkin的 有點複雜,我們可以慢慢的講一下其中的淵源。ros 於willow garage這個公司,他們希望借助開源的...
04 編譯乙個ROS包
1 記得事先source你的環境配置 setup 檔案,在ubuntu中的操作指令如下 source opt ros groovy setup.bash 也可以在 bashrc配置檔案進行配置 2 catkin make 是乙個命令列工具,它簡化了catkin的標準工作流程。你可以認為catkin ...
ROS 引用同一工作空間下其他包中的 h 檔案
引用同一工作空間下其他package的 h 檔案,一種方法是建立library生成動態鏈結庫 so 1 2 3 另一種方法是直接引用 h 檔案 1 2 1 catkin package include dirs include libraries motordriver catkin depends...