举例说明吧:
1、建立文件树如下:
myproject:
-include
--Interface.h
-lib
--libInterface.so
-src
--control.cpp
-CMakeLists.txt
-package.xml
即在对应的源文件包下建立两个文件夹include(放.so对应的头文件),lib(放.so文件)
2、然后配置CMakeLists.txt
include_directories(
${catkin_INCLUDE_DIRS} include
)
link_directories(
${catkin_LIB_DIRS} lib
)
add_executable(base_control src/control.cpp)
target_link_libraries(base_control
${catkin_LIBRARIES} Interface
)
注意最后倒数第二行Interface这里,该.so文件名为libInterface.so
解决/usr/bin/ld: cannot find -lxxxx 的问题:
参考:https://blog.csdn.net/zhuquan945/article/details/79725201
试过添加路径的方法但是catkin_make不好用,所以最后采用了直接把.so文件通过sudo cp指令复制到/usr/lib,然后sudo ldconfig,就ok了