程序包B创建一个动态库
- 打开程序包B的CMakeLists.txt,添加如下:
add_library(${PROJECT_NAME} src/target.cpp src/target1.cpp src/target2.cpp)
会生成动态库,位于/home/user/user_ws/devel/lib。
- 在同一个程序包中使用该库,在CMakeLists.txt生成可执行文件,链接到该库上
add_executable(test src/test.cpp)
target_link_libraries(test
${catkin_LIBRARIES}
${PROJECT_NAME} ## 目标库
)
- 还需修改这一处,不然程序包A中也无法找到正确的库路径,取消掉INCLUDE_DIRS和LIBRARIES的注释
程序包A使用程序包B的库
- 创建程序包A时构建与动态库B的关系
catkin_create_pkg A roscpp rospy std_msgs B
- 假设程序包A已经创建,参考这里