现在的位置: 首页 > 综合 > 正文

Linux下编译Jsoncpp

2013年10月22日 ⁄ 综合 ⁄ 共 1393字 ⁄ 字号 评论关闭

本贴借鉴了下面三位链接的帖子.对下面的三位致以感谢.在编译安装的时候遇到了很多问题.但都解决了.


作者:Luckydev

http://blog.csdn.net/gzshun/article/details/8331908

作者:yujun_huoxu

http://blog.csdn.net/yujun_huoxu/article/details/7616178

作者:faye_cb

http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=1849970#lastpost

此帖注意五楼


linux下面编译需要使用到scons功能和GNU make一样,又比make简单多了.scons是python工具.


下载scons

http://www.scons.org/

 tar -zxvf scons-2.0.1.tar.gz

注意

注意此处解压的位置,在设置环境变量的时候要用到.


设置环境变量

# export MYSCONS=(scons-2.0.1.tar.gz 解压的文件夹的位置,注意是绝对路径)

# export SCONS_LIB_DIR=$MYSCONS/engine


开始编译jsoncpp
# cd jsoncpp-src-0.5.0 (解压jsoncpp.tar.gz 的文件下)

# python $MYSCONS/script/scons platform=linux-gcc


生成所需的lib文件

在./jsoncpp-src-0.5.0\libs\linux-gcc-4.4.6

libjson_linux-gcc-4.4.4_libmt.a
libjson_linux-gcc-4.4.4_libmt.so


可选修改

mv libjson_linux-gcc-4.4.6_libmt.so libjson.so


测试程序(linux g++)


TestJson.cpp


#include <string>
#include <iostream>
#include <stdio.h>


#include "json/json.h"

using namespace std;

int main()
{
    string test ="{\"name\":\"shijiezhidian\"}";

    Json::Reader reader;
    Json::Value     value;

    if(reader.parse(test,value))
    {
        if(!value["id"].isNull())
        {    

            string sTemp =value["name"].asString();
            cout<<sTemp<<endl;

          printf("value[\"name\"].asString:%s\n", value["name"].asString());
        }
    }
    return 0;
}


编译

g++ TestJson.cpp -ljson


执行

./a.out


输出

shijiezhidian


注意:

我将 libjson.so 拷贝至了 /usr/lib 下

此处我将 jsoncpp-src-0.5.0/include/json   整个目录都拷贝至了 /usr/local/include  下. 如果不进行拷贝.会出现第三个链接所出现的问题.


转载请注明出处.



抱歉!评论已关闭.