先下载jsoncpp
再在cocos2d工程中Add一个新的Lib项目
新建一个Win32的控制台程序,放在cocos2d根目录下,就是和cocos2dx平齐的一个目录。名字可以随便取,我的叫libJson
(截图中用的lib_Json,因为之前libJson已经建立了,为了截图不得不取另一个名字...后面很多地方我都是假设自己建立的工程名是libJson,如图照搬的同学就请注意一下这个细节吧)
点击OK后,next,然后出现一个选项面板,选择static library
finish以后,将程序自动生成的那些没用的文件删掉,然后打开下载并解压好的jsonCpp文件夹,找到include文件夹和src文件夹,将它们拷贝到自己刚刚新建的libjson工程根目录下,并导入到项目中
右键libJson,选择properties,做出如下修改(其实我只是完全按照cocos2d其他lib工程的properties做出修改。至于都改了什么,我可能没有列很全。如果大家修改完对应属性以后,程序还是无法正常编译,则可以手动右键一个cocos2d自己的lib工程,然后按照那个工程的属性,对自己工程属性进行一对一的修改)
修改C/C++ >>> General >>> Additional IncludeDirectories
添加include路径:$(SolutionDir)libJson\include
以下的是我不知道应不应该改的东西,但是为了和cocos2d其他lib工程保持一致,还是改掉了。
差不多就是以上的修改了
接下来就要开始写这个lib的Android.mk文件了
在libJson工程根目录下,新建一个记事本,重命名为Android.mk
用EditPlus等工具打开该文件,输入如下内容
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libJson_static
LOCAL_MODULE_FILENAME := libJson
LOCAL_SRC_FILES := src\lib_json\json_value.cpp \
src\lib_json\json_reader.cpp \
src\lib_json\json_writer.cpp
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_CPPFLAGS += -fexceptions
include $(BUILD_STATIC_LIBRARY)
这个工程基本上就这样了
接下来我们要修改需要引入jsonCpp的工程properties
右键自己的cocos2d项目,选择properties >>>C/C++ >>> General
inlucde路径里添加 $(SolutionDir)libJson\include\json
然后是在Linker >>> Input中
Addtion Dependencies 添加 libJson.lib
如此以后,在需要用到json的地方只要
#include "json.h"
就能使用json内的所有内容啦
但是这只是在VC中能使用JsonCpp而已,如果要移植到android中,需要修改项目jni\Android.mk文件
修改的语句如下
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
$(LOCAL_PATH)/../../../libJson/include/json
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_staticlibJson_static
$(call import-module,libJson)
添加call那一句的时候,注意在它的上一行末尾加上“\”
如图:
好了 编译吧~~~大功告成了~~~~~~~~
补充:
libJson建完后记得编译一次,让它在cocos2d-2.0的debug.win32中生成一个.lib文件。