有时候需要将自己的ros工作空间打包成接口提供别人调用,这样可以有效保护自己的源代码。具体步骤如下:
封装:
1. 进入自己的工作空间,比如我的工作空间为 /my_ws
cd my_ws
catkin_make
catkin_make install
之后会在/mu_ws目录下出现/intall 文件夹
如过调用时提示头文件找不到,则需要在对应的package下的CMakeList.txt中添加:
## Mark cpp header files for installation
install(DIRECTORY include/${PROJECT_NAME}/
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
# FILES_MATCHING PATTERN "*.h"
# PATTERN ".svn" EXCLUDE
)
再重复catkin_make 与catkin_make install
调用:
1. 把/install文件夹内所有内容拷贝至需要调用接口的环境中,一般拷贝至 /opt/newfolder/
2. 在调用的ros工作空间中,相应的package里的CMakeList.txt中加入接口的调用(头文件与lib文件):
set (opt_include /opt/newfolder/install/include)
set (opt_lib /opt/newfolder/install/lib)
include_directories(
${catkin_INCLUDE_DIRS}
${opt_include}
)
link_directories(
lib
${catkin_LIB_DIRS}
${opt_lib}
)
target_link_libraries(${PROJECT_NAME}_node
${catkin_LIBRARIES}
${opt_lib}
)
就完成配置啦!