CentOS安装jsoncpp

两种安装方式:

  1. 通过cmake安装
  2. 通过scons安装

cmake安装见cmake安装jsoncpp,scons安装见下文。

 

1. 安装scons

tar zxvf scons-2.5.0.tar.gz
export MYSCONS=/root/file/scons-2.5.0
export SCONS_LIB_DIR=$MYSCONS/engine

MYSCONS要换成你自己文件的路径。

(我还把这两行export添加到了 /etc/profile 文件中了。)

2. 编译安装jsoncpp

tar zxvf jsoncpp-1.8.0.tar.gz
cd jsoncpp-1.8.0
python $MYSCONS/script/scons platform=linux-gcc

3. 路径设置

把源码中的json文件夹拷贝到/usr/local/include目录下

把生成的.a和.so文件拷贝到/usr/local/lib目录下。

打开/etc/profile,添加以下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib

保存,再来一句: source /etc/profile,修改立即生效。

安装结束。

----------------------------

一个Demo:

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

using namespace std;

int main()
{
    Json::Value root;
    root["key1"] = "value1";
    root["key2"] = "value2";
    
    Json::Value value31;
    value31["key31"] = "value31";
    value31["key32"] = "value32";
    Json::Value value3;
    value3.append(value31);        // value3[0] = value31;
    root["key3"] = value3;
    //for (Json::Value::const_iterator it = value3.begin(); it != value3.end(); it++) {
    //    Json::Value currentValue = *it;
    //    for (Json::Value::const_iterator it = currentValue.begin(); it != currentValue.end(); it++) {
    //        cout << (*it).asString() << endl;
    //    }
    //}
    Json::Value value4;
    value4["key41"] = "value41";
    value4["key42"] = "value42";
    root["key4"] = value4;
    //for (Json::Value::const_iterator it = value4.begin(); it != value4.end(); it++) {
    //    cout << (*it).asString() << endl;
    //}
    Json::Value value5;
    value5[0] = "value51";
    value5[1] = "value52";
    value5[2] = "value53";
    root["key5"] = value5;
    //for (Json::Value::const_iterator it = value5.begin(); it != value5.end(); it++) {
    //    cout << (*it).asString() << endl;
    //}
    string str = root.toStyledString();
    cout << "Json 大小为: " << root.size() << endl;
    cout << "Json 值为: " << str << endl;

    for (Json::Value::const_iterator it = root.begin(); it != root.end(); it++) {
        string key = it.name();
        cout << "Current Json key is: " << key << endl;
        Json::Value value = *it;
        cout << "Current Json value is: " << value << endl;
        cout << "Current Json value size is: " << value.size() << endl;

        cout << endl;
    }

    return 0;
}
View Code

执行结果:

参考文档:

CentOS源码安装Jsoncpp

posted @ 2017-01-18 13:23  Sawyer Ford  阅读(7754)  评论(0编辑  收藏  举报