文章目录

  • 说明
  • 1.下载源码
  • 2. 生成Makefile
  • 3. 编译与安装
  • 4. 测试

说明

之前在 Linx 系统里用 JsonCpp ,记录了安装使用过程。
CentOS下Jsoncpp安装配置
Windows 上源码编译 JsonCpp 实际也不复杂,只是在使用习惯、命令方法上略有差别导致在不同系统上操作显得有些不自然。Windows 上编译安装各种 c/c++ 开源软件/库,通常推荐的都是 Visual Studio 软件(MSVC 编译器),更多的教程讲的也都是基于 MSVC 的方法。而本文选择

  • 基于 Windows 10 操作系统
  • 使用 CMake 构建项目
  • 使用 MinGW 编译 Jsoncpp 源码,生成动/静态链接库
  • 使用 Qt 进行测试

当然参考本教程前需准备好如下开发环境

  • Qt(MinGW) for Windows
  • CMake

没准备好的可以参考下面链接的相应小节
CGAL 在 Windows QT(MinGW) 的环境搭建

进入正题。

1.下载源码

到 Github 上下载源码到本地,当前版本 v1.9.4
https://github.com/open-source-parsers/jsoncpp

2. 生成Makefile

打开图形界面 cmake-gui ,填入源码路径和生成二进制文件路径,然后 Configure 进行检查和配置

  • E:/SweetYaya/jsoncpp/jsoncpp-1.9.4
  • E:/SweetYaya/jsoncpp/build


检查和配置完成后点击 Generate 生成 Makefile


结果如下

3. 编译与安装

以管理员身份运行 cmd ,进入 build/ 目录,执行

E:\SweetYaya\jsoncpp\build> mingw32-make.exe
Scanning dependencies of target jsoncpp_lib
[  5%] Building CXX object src/lib_json/CMakeFiles/jsoncpp_lib.dir/json_reader.cpp.obj
...
Testing MemberTemplateIs/BehavesSameAsNamedIs: OK
All 118 tests passed
[100%] Built target jsoncpp_test

然后

E:\SweetYaya\jsoncpp\build> mingw32-make.exe install
[ 23%] Built target jsoncpp_lib
....
-- Up-to-date: C:/Program Files (x86)/jsoncpp/include/json/version.h
-- Up-to-date: C:/Program Files (x86)/jsoncpp/include/json/writer.h

4. 测试

创建 Qt console 项目,主文件 main.cpp 如下

#include <QCoreApplication>
#include <fstream>
#include <iostream>
#include <json/json.h>
#include <cassert>
#include <errno.h>
#include <string.h>
using namespace std;
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);ifstream ifs;ifs.open("jsontest.json");assert(ifs.is_open());Json::Reader reader;Json::Value root;if (!reader.parse(ifs, root, false)){cout << "reader parse error: " << strerror(errno) << endl;return -1;}string name;int age;int size;size = root.size();cout << "total " << size << " elements" << endl;for (int i = 0; i < size; ++i){name = root[i]["name"].asString();age = root[i]["age"].asInt();cout << "name: " << name << ", age: " << age << endl;}return a.exec();
}

配置文件 .pro 添加如下链接

LIBS += -LE:\SweetYaya\jsoncpp\build\bin\ -ljsoncppINCLUDEPATH += E:\SweetYaya\jsoncpp\build\include\

最后在项目编译生成文件夹下创建一个测试文件 jsontest.json

[{"name":"Long", "age":6}]

编译运行结果如下,OK

.
.
.
.
.
.


桃花仙人种桃树,又摘桃花换酒钱_

Windows下使用MingW编译Jsoncpp链接库相关推荐

  1. Windows下用Mingw编译Boost.Regex库

    下载Boost库,解压. 定位到regex库文件夹下. GCC所对应的MAKEFILE为gcc.mak 进入命令提示符下,输入make -f gcc.mak 这是如果直接按回车执行的话,会出现错误: ...

  2. Windows下用CMake编译JsonCpp及配置(适合新手)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 JsonCpp是什么? JSON是一种轻量级的数据交换格式.它可以表示数字.字符串.有序的值序列 ...

  3. 手把手教你在Windows下使用MinGW编译libav

    2019独角兽企业重金招聘Python工程师标准>>> 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav ...

  4. 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

    转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...

  5. [转]cscope在windows下使用mingw编译的方法

    cscope在windows下使用mingw编译的方法      http://blog.csdn.net/mslk/archive/2007/05/06/1598513.aspx cscope在wi ...

  6. 在Windows下使用MinGW静态编译Assimp

    使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...

  7. 在windows下写makefile编译代码

    From: http://blog.163.com/xjming487@126/blog/static/212951352007625114849843/ 在windows下写makefile编译代码 ...

  8. 手把手教你在windows下源码编译Open3D

    文章目录 前言 1.编译环境 2.编译步骤 3.编译中的bug 3.1 下载超时问题,ispc.pybind11.open3d_sphinx_theme等 3.2 boringssl 3.3 Dire ...

  9. Windows下使用VS2019编译libiconv-1.16

    Windows下使用VS2019编译libiconv-1.16 参考了 https://blog.csdn.net/zhouguangcai8/article/details/105270657,在其 ...

最新文章

  1. 独家 | 提升API设计技能的22个最佳实践(附链接)
  2. Oracle修改字段类型方法
  3. 用PHP制作饼图调查表
  4. mysql客户端登陆提示client option 'secure_auth' enabled错误
  5. JavaScript学习(六十三)—typeof和instanceof检测数据类型的异同
  6. 远程使用plsql登陆数据库时,界面提示 ORA-12170 TNS 连接超时
  7. vs2008补丁发布
  8. JAVA学子商城项目问题集锦(springboot)
  9. 什么是Web应用程序防火墙?
  10. TextView 在xml 中设置图片大小
  11. 合宙Air202--Luat入门学习
  12. java对接支付宝三方登录
  13. 麦子学院demo(html+css)
  14. 多显示器屏幕枚举方法
  15. android 多个style,Android style详解
  16. 跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)
  17. python-docx 设置Table 边框样式、单元格边框样式
  18. 广州宇信易诚科技有限公司面试题
  19. 低代码的 Soulmate 燃爆 Ignite China 晚场趴,高光瞬间不止亿点点
  20. [转摘]必须学好C++么?

热门文章

  1. 单片机双字节数乘法运算实验_基于单片机指纹电子密码锁——硬件设计2
  2. 产品设计:基于二维码与打印业务的校园推广方案
  3. 【MySQL】十五、内连接(等值连接,非等值连接,自连接)
  4. c++复习日记1 类的继承与派生
  5. 信创环境下的Wps-Chrome浏览器插件开发
  6. python 多张图片进行横向与纵向的无损拼接,适用于图片宽高差不多的图片
  7. linux iptables启动问题
  8. buuctf have fun
  9. win10计算机右键属性打不开,win10系统右键点击“属性”打不开窗口的具体办法...
  10. YunCharge充电桩系统开源源码,配套设备+小程序直接商用落地