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文档

参考博客

posted @ 2018-04-26 12:08  浩劫Calamity  阅读(3741)  评论(1编辑  收藏  举报