redhat6.0源码使用jsoncpp
2016-12-06 14:28
302 查看
本文自己玩出来的,网上许多使用jsoncpp几乎都一样,我按其操作编译后使用,报了很多错。最终自己源码编译生成一个静态库,事实上有了源码怎么都可以。
1、 下载源码包:
下载地址为:http://sourceforge.net/projects/jsoncpp(版本为jsoncpp-src-0.5.0)
2、 解压源码包:
tar -zvxf jsoncpp-src-0.5.0.tar.gz,解压后会生一个jsoncpp-src-0.5.0的文件夹,cd
jsoncpp-src-0.5.0, 如图:
你只需要关心include和src目录。会用到include目录下的json目录下的所有文件,其实就是头文件,如图:
和src目录下的lib_json目录下的文件,其实就是源文件,如图:
3、 编译源码使用:
我这里新建一个目录test1,将头文件和源文件拷入其下,注意头文件是在json目下,拷贝时要使其在json目录下。如图:
写一个Makefile编译成静态库,并test.cpp中测试。
Makefile内容如下:
libjsonlib.a:json_reader.o json_value.o json_writer.o
ar rs libjsonlib.a json_reader.o json_value.ojson_writer.o
json_reader.o:json_reader.cpp
g++ -std=c++11 -Wall -c -I. json_reader.cpp
json_value.o:json_value.cpp
g++ -std=c++11 -Wall -c -I. json_value.cpp
json_writer.o:json_writer.cpp
g++ -std=c++11 -Wall -c -I. json_writer.cpp
clean:
rm -rf *.o
test.cpp源码内容如下:
#include<string>
#include<json/json.h>
#include<stdio.h>
usingnamespace std;
int main(intargc, char *argv[])
{
stringtest="{\"id\":1,\"name\":\"kurama\"}";
Json::Reader reader;
Json::Value value;
if(reader.parse(test,value))
{
if(!value["id"].isNull())
{
printf("%d\n",value["id"].asInt());
printf("%s\n",value["name"].asString().c_str());
}
}
return 0;
}
//g++ -std=c++11 -g -Wall -I.test.cpp -L. -ljsonlib
1、 下载源码包:
下载地址为:http://sourceforge.net/projects/jsoncpp(版本为jsoncpp-src-0.5.0)
2、 解压源码包:
tar -zvxf jsoncpp-src-0.5.0.tar.gz,解压后会生一个jsoncpp-src-0.5.0的文件夹,cd
jsoncpp-src-0.5.0, 如图:
你只需要关心include和src目录。会用到include目录下的json目录下的所有文件,其实就是头文件,如图:
和src目录下的lib_json目录下的文件,其实就是源文件,如图:
3、 编译源码使用:
我这里新建一个目录test1,将头文件和源文件拷入其下,注意头文件是在json目下,拷贝时要使其在json目录下。如图:
写一个Makefile编译成静态库,并test.cpp中测试。
Makefile内容如下:
libjsonlib.a:json_reader.o json_value.o json_writer.o
ar rs libjsonlib.a json_reader.o json_value.ojson_writer.o
json_reader.o:json_reader.cpp
g++ -std=c++11 -Wall -c -I. json_reader.cpp
json_value.o:json_value.cpp
g++ -std=c++11 -Wall -c -I. json_value.cpp
json_writer.o:json_writer.cpp
g++ -std=c++11 -Wall -c -I. json_writer.cpp
clean:
rm -rf *.o
test.cpp源码内容如下:
#include<string>
#include<json/json.h>
#include<stdio.h>
usingnamespace std;
int main(intargc, char *argv[])
{
stringtest="{\"id\":1,\"name\":\"kurama\"}";
Json::Reader reader;
Json::Value value;
if(reader.parse(test,value))
{
if(!value["id"].isNull())
{
printf("%d\n",value["id"].asInt());
printf("%s\n",value["name"].asString().c_str());
}
}
return 0;
}
//g++ -std=c++11 -g -Wall -I.test.cpp -L. -ljsonlib
相关文章推荐
- C++ 项目中直接使用JsonCpp源码文件
- C++ JsonCpp 使用(含源码下载)
- C++ JsonCpp 使用(含源码下载)
- C++ JsonCpp 使用(含源码下载)
- jsoncpp在xcode中的使用
- 7、JsonCpp简单使用(3)
- QT 使用jsoncpp
- VS2010中使用JSONCPP方法
- 使用jsoncpp
- LINUX下使用JsonCpp
- 使用JsonCPP解析JSON数据(VC++)
- 在BCB中使用JSONCPP需要注意的问题
- 数据/配置 的存储方式 Json篇 以JsonCpp库使用为例
- cocos2d-x JsonCpp 导入和详细使用介绍
- Jason库的使用【C++】(jsoncpp)
- JSONCPP使用
- Linux 下编译JsonCpp与使用
- VC下jsoncpp的使用入门(转)
- 6、JsonCpp简单使用(2)
- VS2010中使用JSONCPP方法