本贴借鉴了下面三位链接的帖子.对下面的三位致以感谢.在编译安装的时候遇到了很多问题.但都解决了.
作者:Luckydev
http://blog.csdn.net/gzshun/article/details/8331908
http://blog.csdn.net/yujun_huoxu/article/details/7616178
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 下. 如果不进行拷贝.会出现第三个链接所出现的问题.
转载请注明出处.