1. 程式人生 > >ROS 中新增第三方依賴庫

ROS 中新增第三方依賴庫

修改 stack.xml 和manifest.xml 中的 export 標籤是無效的, 具體可以看這裡, 
...
<export>
    <cpp cflags="-I../include" />
    <cpp lflags="-L/usr/local/Aria/lib" />
</export>
...

這裡,只是為package的使用者而定義的。 比如, 

  1. 對於-I選項來說,可能是執行中需要在特定的目錄下查詢檔案, 就可以通過這個來指定,不過,只是個人猜測
  2. 對於-L選項,就是程式執行的時候,設定動態連結庫的查詢路徑, 和
    export LD_LIBRARY_PATH=$LD_LIBRARY_APTH:path
    效果是一樣的,只是這個程式的呼叫者不需要額外指定(比如,在~/.bashrc 裡面寫出來)
那麼, 需要使用第三方庫的話,直接修改package 對應的CMakeLists.txt 檔案,使用標準的CMake巨集
  • 新增標頭檔案搜尋路徑: INCLUDE_DIRECTORIES(/usr/include/)
  • 新增庫檔案搜尋路徑: LINK_DIRECTORIES(/usr/lib/) 
  • 新增對庫的連結: TARGET_LINK_LIBRARIES(target lib)