jsoncpp 的编译和交叉编译

1、下载源码包

https://sourceforge.net/projects/jsoncpp/

2、解压

解压:tar -zxvf jsoncpp-src-0.5.0.tar.gz
进入解压后路径:cd jsoncpp-src-0.5.0.tar.gz

3、编译

3.1 Ubuntu编译(gcc)

先安装 scons 在直接编译下(相比Makefile要操作简单 )执行下面命令
sudo apt-get install scons
scons platform=linux-gcc

这样就直接可以获取到linux平台下的静态库和动态库
具体和GCC的版本有关系
动态库:./libs/linux-gcc-7/libjson_linux-gcc-7_libmt.so
静态库:./libs/linux-gcc-7/libjson_linux-gcc-7_libmt.a

3.2 嵌入式linux【ARM】平台下交叉编译(arm-linux-gcc)

嵌入式linux 平台下需要使用相应的交叉编译工具(arm-linux-gcc)

首先将源码提取出来 单独放在一个目录中

新建文件夹:mkdir arm_jsoncpp

拷贝头文件:cp include/ arm_jsoncpp/ -r

拷贝源码:cp src/lib_json/* arm_jsoncpp/

进入目录:cd arm_jsoncpp/

编译静态库

arm-linux-g++ -c *.cpp -I./include -fPIC
ar cr libjsoncpp.a *.o

静态库:./arm_jsoncpp/libjsoncpp.a

编译动态库

arm-linux-g++ -shared -fPIC *.cpp -I./include -o libjsoncpp.so

动态库:./arm_jsoncpp/libjsoncpp.so

4、使用

1、将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到/usr/include/

2、将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a

3、编译自己的代码时,在gcc命令最后加-ljson

参考:
https://blog.csdn.net/weixin_36607844/article/details/78957807
https://www.jianshu.com/p/aa377e0df19a

你可能感兴趣的:(jsoncpp 的编译和交叉编译)