希望大家收藏:
本文更新地址: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的部分
参考: