jsoncpp linux平台编译和 交叉编译

1、下载源码包 我下载版本:jsoncpp-src-0.5.0.tar.gz
2、在压缩包目录下执行解压操作,执行命令解压:tar -zxvf jsoncpp-src-0.5.0.tar.gz

解压源码.png

3、linux 平台编译
进入解压得到的文件目录中 : cd jsoncpp-src-0.5.0/
先安装 scons 在直接编译下(相比Makefile要操作简单 )执行下面命令

sudo apt-get install scons
scons platform=linux-gcc

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

jsoncpp linux平台编译和 交叉编译_第1张图片
linux平台下编译库文件.png

4、嵌入式linux平台下交叉编译生成文件

嵌入式linux 平台下需要使用相应的交叉编译工具 类似GCC
首先将源码提取出来 单独放在一个目录中

mkdir arm_jsoncpp
cp include/ arm_jsoncpp/ -r
cp src/lib_json/* arm_jsoncpp/
cd arm_jsoncpp/
建立交叉编译生成文件目录.png

进入目录后开始编译文件
编译静态库

arm-arago-linux-gnueabi-g++ -c *.cpp -I./include -fPIC
ar cr libjsoncpp.a *.o
交叉编译生成静态库.png

静态库:./arm_jsoncpp/libjsoncpp.a

交叉编译生产动态库.png

编译动态库

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

动态库:./arm_jsoncpp/libjsoncpp.so
5、静态库的使用

#include 
#include
#include   
#include   
#include   
#include "arm_jsoncpp/include/json/json.h"  
using namespace std;
int main(void)
{

    Json::Value root;  
    Json::FastWriter fast;  
    root["ModuleType"] = Json::Value("你好");  

    root["ModuleCode"] = Json::Value("22");  

    root["ModuleDesc"] = Json::Value("33");  

    root["DateTime"] = Json::Value("44");  

    root["LogType"] = Json::Value("55");  
    cout<

linux 平台下编译执行

g++  hello.cpp ./libjson_linux-gcc-4.6_libmt.a  -o hello1
代码演示.png

嵌入式linux下编译执行

代码演示.png

将生成文件拷贝到嵌入式环境中执行:

jsoncpp linux平台编译和 交叉编译_第2张图片
代码演示.png

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