jsoncpp库属于第三方库,需要下载编译安装, 支持在线安装和离线安装
推荐链接动态库
编译好的jsoncpp的静态库和动态库在该目录下
/usr/local/lib
头文件在这
/usr/include/jsoncpp/
其中静态库为libjsoncpp.a,动态库为libjsoncpp.so,所谓静态、动态是指链接的方式不同。
推荐链接动态库,因为消耗内存更小,动态库在程序编译时并不会被链接到目标代码中,而是在程序运行是才被载入。
ros2添加第三方库
ros2使用的编译命令是colcon build,编译配置在CMakeLists.txt文件中,在配置文件中主要做两件事来添加第三方库
- 配置头文件路径
- 配置动态或静态链接库
步骤如下
-
为了便于移植,把libjsoncpp.a或者libjsoncpp.so拷贝到功能包下的lib目录,在功能包下新建lib目录mkdir lib, 拷贝目标文件 cp /usr/local/lib/libjsoncpp.a 功能包目录/lib
-
在使用jsoncpp的目标cpp文件中导入头文件
#includes <iostream>
#includes <json/json.h>
- 配置CMakeLists.txt
添加静态链接库:
target_link_librabries {
node_name
${CMAKE_CURRENT_SOURCE_DIR}/lib/libjsoncpp.a
}
添加动态链接库
include_directories(/usr/include/jsoncpp)
target_link_librabries {
node_name
${CMAKE_CURRENT_SOURCE_DIR}/lib/libjsoncpp.so
}
其中target_link_librabries要放在add_executable后面,这样才能得到node_name