win7下使用mingw编译jsoncpp库并用Qt Creator
2016-01-22 12:44
1191 查看
最近需要在Qt MINGW 下解析json,查了一下jsoncpp这个库很合适,所以下载了这个第三方库。自己编译费了点劲,记录一下编译过程。
本人对编译不太懂,有什么不对的希望指出。
现在这个库已经移到github上,目前最新的版本是1.6.5 ,附上下载地址
https://github.com/open-source-parsers/jsoncpp/tree/1.6.5
下载后解压,我的解压到 E:\DOWNLOAD\jsoncpp-1.6.5
进去发现有个README.md 里面有介绍怎么使用
推荐的方式是将 两个头文件 和 一个cpp 文件加到你的工程中,
那么是哪两个头文件和cpp文件呢 下面帮助里写着用
python amalgamate.py
生成两个头文件和一个源文件 ,所以需要安装Python,这里不详说了
打开cmd(最好是以管理员身份运行),进到解压后的有README.md这一层,
接着执行python amalgamate.py
如图,生成了dist/json/json.h dist/json/json-forward.h dist/jsoncpp.cpp
应该就是这三个文件。
接下来测试这三个文件能不能用。
在Qt Creator里新建一个工程,test
然后在工程里新建一个文件夹json ,将刚生成的三个文件都复制到这个新建的文件夹下,
然后右键点击项目,添加现有文件
进到json文件夹,将这三个文件都选上,
然后 ,就变成这样 , 你的.pro也多了两句
从网上找个栗子 试试看。
好了,完成。
最后有点问题,因为需要mingw ,所以按照README.me 使用scons platform=mingw 生成了 一个 libjson_mingw_libmt.a文件
本想通过 在.pro 里引用INCLUDEPATH 和 LIBS方法使用jsoncpp , 却总不成功,最后又看README.md 用了推荐的方法。
如果我这个方法有问题,希望知道的朋友告诉我。
本人对编译不太懂,有什么不对的希望指出。
现在这个库已经移到github上,目前最新的版本是1.6.5 ,附上下载地址
https://github.com/open-source-parsers/jsoncpp/tree/1.6.5
下载后解压,我的解压到 E:\DOWNLOAD\jsoncpp-1.6.5
进去发现有个README.md 里面有介绍怎么使用
推荐的方式是将 两个头文件 和 一个cpp 文件加到你的工程中,
那么是哪两个头文件和cpp文件呢 下面帮助里写着用
python amalgamate.py
生成两个头文件和一个源文件 ,所以需要安装Python,这里不详说了
打开cmd(最好是以管理员身份运行),进到解压后的有README.md这一层,
接着执行python amalgamate.py
如图,生成了dist/json/json.h dist/json/json-forward.h dist/jsoncpp.cpp
应该就是这三个文件。
接下来测试这三个文件能不能用。
在Qt Creator里新建一个工程,test
然后在工程里新建一个文件夹json ,将刚生成的三个文件都复制到这个新建的文件夹下,
然后右键点击项目,添加现有文件
进到json文件夹,将这三个文件都选上,
然后 ,就变成这样 , 你的.pro也多了两句
从网上找个栗子 试试看。
#include <iostream> #include "json/json.h" using namespace std; int main() { string strValue = "{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}"; Json::Reader reader; Json::Value value; if (reader.parse(strValue, value)) { string out = value["key1"].asString(); cout << out << endl; const Json::Value arrayObj = value["array"]; for (int i=0; i<arrayObj.size(); i++) { out = arrayObj[i]["key2"].asString(); cout << out; if ( i != arrayObj.size()-1 ) cout << endl; } } return 0; }
好了,完成。
最后有点问题,因为需要mingw ,所以按照README.me 使用scons platform=mingw 生成了 一个 libjson_mingw_libmt.a文件
本想通过 在.pro 里引用INCLUDEPATH 和 LIBS方法使用jsoncpp , 却总不成功,最后又看README.md 用了推荐的方法。
如果我这个方法有问题,希望知道的朋友告诉我。
相关文章推荐
- Qt遇到链接问题
- Qt之串口类QSerialPort使用笔记
- VS2012下进行QT creator登录对话框设计
- 为程序申请管理员权限
- qt 容器类
- 搭建OpenCV 3.1、OpenNi2、Qt 5.5、VS2010开发环境
- 如何将Visual Studio的工程转成QT的工程
- QT中实现托盘
- Ubuntu下qt+opencv小试牛刀1:打开图片
- Qt for OS X - Deployment(官方文档)
- node.js搭建mqtt服务器(broker)身份验证(auth)
- CPU满格的元凶,这回是由于QTimer引起的(默认interval是0,太猛)
- Qt中用正則表達式来推断Text的语种,主要通过推断unicode的编码范围
- QTableView的应用(Qss美化,加checkbox)
- 自己整的os也能跑qt
- Qt之自定义界面(窗体缩放-跨平台终极版)
- Qt之自定义界面(窗体缩放-跨平台终极版)
- Qt之自定义界面(窗体缩放)
- Qt之自定义界面(窗体缩放)
- PyQt学习笔记01-Qt基本概念进阶篇