希望大家收藏:
本文更新地址: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中添加庫目錄名字。
注意:
- link_directories必須要放到add_executable前面,因為這個命令只對后續命令生效。
- ROS官網建議不要使用link_directories,直接放在target_link_libraries中。我試過很多次,這樣的話無法使用相對路徑。不知道為何
隨着學習的深入,還發現了更簡潔的設置相對路徑的方法,詳情請看https://blog.csdn.net/u013834525/article/details/87937081關於PROJECT_BINARY_DIR的部分
參考: