ROS CMakeLists中target_link_libraries相對路徑設置


希望大家收藏:

本文更新地址:https://haoqchen.site/2018/04/26/CMakeLists-setting-relative-path/

左側專欄還在更新其他ROS實用技巧哦,關注一波?

先看我的CMakeLists文件:

link_directories(libs/X64)

add_executable(${PROJECT_NAME} 
    src/play_audio.c 
    src/awaken.c
)
add_executable(show_order
    src/test_listener.cpp
)

target_link_libraries(${PROJECT_NAME}
    ${catkin_LIBRARIES}
    libmsc.so
    libasound.so
 )

target_link_libraries(show_order
    ${catkin_LIBRARIES}
)

因為我這里用到了科大訊飛的一個鏈接庫 libmsc.so,放到了我package目錄下的libs/X64文件夾下,出於移植的考慮,不想使用絕對路徑。所以這里使用link_directories添加相對路徑的目錄,然后在target_link_libraries中添加庫目錄名字。

注意:

 

  1. link_directories必須要放到add_executable前面,因為這個命令只對后續命令生效。
  2. ROS官網建議不要使用link_directories,直接放在target_link_libraries中。我試過很多次,這樣的話無法使用相對路徑。不知道為何

隨着學習的深入,還發現了更簡潔的設置相對路徑的方法,詳情請看https://blog.csdn.net/u013834525/article/details/87937081關於PROJECT_BINARY_DIR的部分

 

參考:

 

ROS官網的CMakeLists文檔

參考博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM