将xxx.so文件放入功能包目录:
假如工作空间ros_ws,功能包ros_test,执行源文件为ros_test1.cpp,需要链接的库为xxx.so
将xxx.so文件复制到你的功能包目录中, 一般新建一个lib文件夹存放,通常路径应该是ros_ws/src/ros_tset/lib。
更新CMakeLists.txt:
在ros_test功能包的CMakeLists.txt文件中,确保你已经添加了xxx.so作为链接目标。你需要使用target_link_libraries来链接xxx.so,如下所示:
add_executable(ros_test1 src/ros_test1.cpp) #"ros_test1"为可执行文件名称,src/ros_test1.cpp为源文件路径
target_link_libraries(ros_test1 ${CMAKE_CURRENT_SOURCE_DIR}/lib/xxx.so
${catkin_LIBRARIES}
) #上述语句的含义是将ros_test1与xxx.so进行连接,“${CMAKE_CURRENT_SOURCE_DIR}”表示当前源文件所在路径,可直接用功能包的绝对路径替代。
其他类似的路径变量名如下:
“当前源代码目录: ${CMAKE_CURRENT_SOURCE_DIR}”
“当前构建目录: ${CMAKE_CURRENT_BINARY_DIR}”
“项目根目录: ${CMAKE_SOURCE_DIR}”)
“CMake构建根目录: ${CMAKE_BINARY_DIR}”
#构建ROS功能包:
在ROS工作空间的根目录中执行以下命令来构建你的功能包:
cd ros_ws
catkin_make