ROS 自定義服務、消息編譯時找不到相關頭文件

ROS自定義服務、消息編譯時找不到相關頭文件

 

在我們擁有多個package的時候,我們定義了一個消息或者服務,並在代碼中使用了這個消息或者服務。如果是單獨編譯這個包,編譯 通過。但是如果是多個包一起編譯,就會出現找不到相關頭文件的錯誤。

原因: 編譯時未按照嚴格順序進行編譯

解決辦法:在使用自定義消息或者服務的包中,修改CMakeLists.txt,增加如下內容

add_dependencies(some_target ${${PROJECT_NAME}_EXPORTED_TARGETS})

作用:讓編譯器知道,編譯some_target時,需要注意編譯順序

參考鏈接:ROS catkin CMakeList.txt: http://wiki.ros.org/catkin/CMakeLists.txt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章