jsoncpp在linux和windows下的编译及使用详解

一:摘要
1. JSON是一种轻量级的数据传输格式,全称为:JavaScript Object Notation,官方网址: http://www.json.org/json-zh.html
3. JSONCPP是一个C++用来处理JSON格式数据的第三方库

二:说明
1. 本篇博客下载的是jsoncpp 0.5.0 版本,jsoncpp 0.5.0下载地址: http://download.csdn.net/detail/yzf279533105/9697182

2. 博客内容及所有代码均是在该版本下编译,运行,测试通过的,示例代码下载地址

windows下示例代码:http://download.csdn.net/detail/yzf279533105/9903065

linux下示例代码:http://download.csdn.net/detail/yzf279533105/9915877


三. Windows下的编译
1. 从上面的地址下载得到jsoncpp-src-0.5.0.tar.gz文件,解压得到jsoncpp-src-0.5.0文件夹
2. 进入目录 jsoncpp-src-0.5.0/makefiles/vs71,打开解决方案jsoncpp.sln(注意vs71也就是VS2003,如果你的VS版本较高,默认转换即可,不会出什么问题)
3. 该解决方案中有三个工程,分别为jsontest,lib_json,test_lib_json
4. 不需任何操作,直接编译工程lib_json,默认是Debug版,该工程为静态库文件工程,最终产生lib文件,产生的库文件为json_vc71_libmtd.lib,全路径为:jsoncpp-src-
0.5.0/build/vs71/debug/lib_json/json_vc71_libmtd.lib,注意产生库文件名字中的 "mtd"字样,这个是编译参数,说明编译的是多线程调试版,mtd的意思即Multi Debug,。当然你也可以编译release版

四. Windows下的使用
1. 切记:示例工程所用的Visual Studio和步骤三的编译库所用的Visual Studio 是同一版本。如果两次所用VS的版本不同,链接静态库时很可能会出现链接错误,笔者已踩过此坑)
2. 建立一个空的win32控制台工程,类似HellowWorld的工程即可,我这里工程命名为jsoncppExample
3. 在本示例工程根目录添加include文件夹,把jsoncpp-src-0.5.0/include/json文件夹整个拷贝到include下面,在属性页 配置属性 -> C/C++ -> 常规 -> 附加包含目录 中设置该工程的头文件目录,即“../include”
4. 在本示例工程根目录添加lib文件夹,把刚才编译的json静态库拷贝到lib下面,即上面的库文件json_vc71_libmtd.lib,在属性页 配置属性 -> 链接器 -> 常规 -> 附加库目录 中设置该工程
的静态库目录,即“../lib”;在属性页 配置属性 -> 链接器 -> 输入 -> 附加依赖项 中设置该工程的静态库的名字,即“json_vc71_libmtd.lib”
5. 在属性页 配置属性 -> C/C++ -> 代码生成 -> 运行时库 中设置为“多线程调试(/MTd)”,即和上面编译库时的选项一致

6. 添加一个源文件main.cpp,代码如下:

#include 
#include 
#include "json/json.h"
using namespace std;

int main()
{
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	/////////////////                                 json Value的新建及key的访问                  ///////////////////////////////
	///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

	cout<<"json Value的新建及key的访问"<



五. Linux下的编译
1.   在linux下编译jsoncpp需要使用scons,一个类似make的编译工具。安装scons需要pyhon,centos系统自带python,如果没有请自行安装,这个简单,注意pyhon版本需为2.7或者以下
2.   安装scons,下载地址 http://download.csdn.net/detail/yzf279533105/9915884。笔者这里是下载到/home/scons/ 目录下。进入目录 /home/scons/,执行解压缩命令 tar -zxvf scons-2.5.1.tar.gz。设置两个环境变量 export MYSCONS=/home/scons/scons-2.5.1 ,export SCONS_LIB_DIR=$MYSCONS/engine 。这两个环境变量至关重要
3.   编译jsoncpp,笔者这里是下载到/home/jsoncpp/ 目录下。进入目录 /home/jsoncpp/,执行解压缩命令 tar -zxvf jsoncpp-src-0.5.0.tar.gz,再进入目录 /home/jsoncpp/jsoncpp-src-0.5.0/,执行编译命令 python $MYSCONS/script/scons platform=linux-gcc,即可编译jsoncpp,随后会生成静态库和动态库文件,在目录jsoncpp-src-0.5.0/libs/linux-gcc-4.4.7中。分别是静态库libjson_linux-gcc-4.4.7_libmt.a,动态库libjson_linux-gcc-4.4.7_libmt.so

六. Linux下的使用

1.   代码与步骤四中windows下的代码完全相同,需编写makefile,示例代码中有

2.   Linux下示例代码下载地址:http://download.csdn.net/detail/yzf279533105/9915877

你可能感兴趣的:(json)