以下转自:http://blog.csdn.net/laogong5i0/article/details/8212511

最近想用box2dEdit来编辑一下比较复杂的图形然后倒入到自己有游戏里,但box2dEdit编辑后输出的是json文件。

因为没有用C++解析json文件的经验,在网上找了很多有关json的开源项目,有cjson(这是c编写的)jsoncpp(C++的项目,但有人说它的移植性不够好)libjson(支持C和C++)由于对C有一种莫名的恐惧感,所以最后还是选择了libjson这个库。

OK!先得吧文件给下载下来,在google上搜libjson就能找到了,当前最新版是libjson_7.6.1,我用的也是这个版本。

打开一看,好多文件,这样直接加到我们的project会很乱,所以要编译成静态库。

那么开始编译静态库吧!!

解压刚刚下载下来的文件,打开libjson.vcproj文件(我用的是VS2010),由于是.vcproj 是VS2008的项目文件,所以我的VS会自动转成vs2010的工程。

转换的过程稍微等了10秒时间,一打开,杯具了~~~报错!说有非法结束符,用.xml打开确实是少了">"符号,好吧加上去,继续打开,还是报错。这次实在是找不到是神马错了!接着开始怀疑是我VS的问题,好吧,那我在虚拟机上装个VS2008来试试,费了好多时间(下载,安装这是一个痛苦的过程),总算安装完成了,赶快打开libjson。真是无语了,报了一样的错,花了这么长时间,连project工程都没打开,libjson这库也太坑爹了!!

既然工程没办法打开,那么就自己建一个工程来编译好了!

好!!新建一个win32Project,如图下图,记得选static library这个程序类型。

新建成功后我们会来库列表里发现2个.h文件和1个.cpp文件,这个文件是不需要的,我们可以把它删除,它是我们在新建的时候勾选了precompled header 生成的。

按完成后可以吧压缩文件里的源文件copy到我们的项目文件夹里,又看下图,我们只要加入选中部分的文件即可。

然后把它添加到我们刚刚建的项目里,如下图操作,添加后我们的库列表就会如红色框所看到的一样。

OK,到了这个我们可以运行了,运行一下看看吧!!

晕死了,好多错误~~~~~~(难道这B就是个垃圾)

Error 12  error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?d:\android\win32project\minigame\libjson\_internal\source\libjson.cpp6061libjson

他说我们的.cpp文件忘了#include “stdafx.h”文件,难道这B真是一垃圾,人肉一下“stdafx.h” (结果),原理是win32为程序的一下配置信息,既然是些没用的东西,那我们能不能不加它呢,又再次人肉了这个问题,原理在配置里有预编译的设置。右键项目属性,如下图,我们把 precompiled header 项改成 Not using precompiled headers,不用预编译头。

然后运行,哦~~还是有错误,好吧继续人肉这些概述的bug,

原来在JSONOptions.h 文件里有些需要配置的地方,在我们下载下来的压缩文件里有一个.pdf 文件,里有详细的说明这些选项的作用。在这里我们需要吧

#define JSON_DEPRECATED_FUNCTIONS 这是主要版本的向后兼容性和易用性的过度,不知道有什么用,但document说这个是不能用的,用了会报错,那么我们就坚决的把它注释掉好了。

因为我们现在还是debug模式 所以要吧 #define JSON_DEBUG 开启,这里是设置debug模式或者release模式的。注释掉就是release模式了。

还有#define JSON_LIBRARY这个值,这是说要使用C接口还是C++接口的函数。(这里看你喜欢啦!不注释的话就是使用C接口,我这里用的是C接口)

编译一下,哈哈成功了!!虽然有几个警告。找到.lib 文件,居然后4M多.

下一次再讲 LIb的使用吧!!

下一篇:libjson 编译和使用 - 2. 配置使用lib文件

最新文章

  1. Dom4j解析xml文件
  2. ntko office在线编辑控件问题记录
  3. JSON and Microsoft Technologies(翻译)
  4. C和指针 第五章 逻辑位移与算术位移
  5. tp框架实现防止非法登录
  6. ArcGIS Javascript 异常之No 'Access-Control-Allow-Origin' header
  7. 安卓:assets目录下的文本文件(不受R文件节制)
  8. UVa 445 - Marvelous Mazes
  9. Catch That Cow(BFS)
  10. swift笔记 (三) —— 字符和字符串
  11. SqlBulkCopy 参数配置示例
  12. bzoj 3576[Hnoi2014]江南乐 sg函数+分块预处理
  13. python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
  14. Centos7 时区的设置
  15. winform启动界面+登录窗口
  16. mysql数据库 详解 之 自学成才1
  17. [Android] TextView上同时显示图标和文字
  18. Android APN
  19. vue教程2-07 微博评论功能
  20. printf()详解之终极无惑

热门文章

  1. MySQL 大数据量使用limit分页,随着页码的增大,查询效率越低下。
  2. 【知了堂学习笔记】java 接口与抽象类
  3. iOS Sprite Kit教程之场景的设置
  4. 深入理解ajax系列第三篇
  5. php常见网络攻击及防御方法
  6. 【Vijos 1998】【SDOI 2016】平凡的骰子
  7. hdu 3613 扩展kmp+回文串
  8. Problem H: 深入浅出学算法009-韩信点兵
  9. Codeforces Round #360 (Div. 2) A. Opponents 水题
  10. IO流-递归遍历目录下指定后缀名结尾的文件名称