安装JsonCpp需要下载JsonCpp和Scon还需要机器上有python

所以要先安装Python  

ubuntu中输入命令 

1 //安装 Python 发布版本,dev包必须安装,很多用pip安装包都需要编译
2 sudo apt-get install python2.7 python2.7-dev

python 安装完成后  安装Json库

1、下载JsonCpp
http://sourceforge.net/projects/jsoncpp/files/
2、下载scons
http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download


3、在ubuntu中建立以目录 将scons-2.1.0.tar.gz 和 jsoncpp-src-0.5.0.tar.gz 压缩包拷到里面

     我是在home下建立的hfc目录 将文件放到里面

     解压scons-2.1.0.tar.gz  

tar -zvxf scons-2.1.0.tar.gz

4、进入到解压目录scons-2.1.0下面,执行命令:

sudo python setup.py install

在最后三行的installed 可以明显看出Python编译scons后的文件在

/usr/local/lib/scons-3.0.0
/usr/local/bin
/usr/local/man/man1

5、解压jsconcpp

tar -zvxf jsoncpp-src-0.5.0.tar.gz

  我的两个文件都解压到了自己 创建的目录   /home/hfc/dir 里面了


6、进入到 jsoncpp-src-0.5.0 解压目录下,执行命令:

sudo python scons platform=linux-gcc
或者 sudo scons platform=linux-gcc

此时你可能遇到下面这样的问题

阅读错误信息可以知道是语法错误 原因是scons被编译过后再执行该句是Python2 和3 不同的问题 并且scons 的路径没有添加

我这里解决的办法是用Python2 进行编译 因为2和3 一些语法不同所以讲报错的地方print改成2的语法

可以看到是jsoncpp-src-0.5.0/SConstruct 里面的语法问题
所以我将vim SConstruct   将print后面的内容加上()

然后再将scons的路径在命令行加上 并指明Python2

sudo python2 /usr/local/bin/scons platform=linux-gcc

​

可以看到环境已经配置完成

此时可以再jsoncpp-src-0.5.0中看到  libs目录 

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

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

9.测试样例 

//json.cpp
#include<iostream>
#include<json/json.h>

using namespace std;

int main()
{
    string test="{\"id\":1,\"name\":\"kurama\"}";
    Json::Reader  reader;
    Json::Value   value;

    if(reader.parse(test,value))
    {
        if(!value["id"].isNull())
        {
            cout<<value["id"].asInt()<<endl;
            cout<<value["name"].asString()<<endl;
        }
    }
    return 0;
}


编译:需指定链接库(刚才重命名后的那个文件):

g++ json.cpp -ljson

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐