ROS CMakeLists中target_link_libraries相对路径设置

ROS学习之路

Posted by 白夜行的狼 on April 26, 2018

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

你的Star是作者坚持下去的最大动力哦~~~

先看我的CMakeLists文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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中。我试过很多次,这样的话无法使用相对路径。不知道为何

参考: ROS官网的CMakeLists文档 参考博客


喜欢我的文章的话Star一下呗Star

版权声明:本文为白夜行的狼原创文章,未经允许不得以任何形式转载