本文主要是介绍JSON解析-开源jsoncpp---动态链接库生成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境
vs2010 ,下载和编译使用静态链接库可以参考这篇文章C++的Json解析库:jsoncpp和boost
由于上面的只是说了生成静态库的过程,使用静态库在我原来都是使用静态库的工程中,行不通,原因就是因为:MD,MDd,MT,MTd的使用过程中,不能使用多个导致的问题。无奈只能寻找生成动态库的方法。
配置过程
我是新建了一个dll库的工程,将开源框架中的源码复制到工程中进行编译。创建工程的步骤和包含头文件的过程就不说了。
-
首先找到config.h文件,在该文件中添加宏 #define JSON_DLL_BUILD 1,上个图:
为什么要添加这个宏,原因是下面的条件编译代码中所说的,如果定义了 JSON_DLL_BUILD 就可以将JSON_API定义为__declspec(dllexport),因为这样后面的类,如Reader等才能够进行导出。 -
如果上面的都做了,当使用的是时候会发现没有lib文件,动态链接库中的.lib文件包含该DLL导出函数的和变量的符号名,而.dll文件包含该DLL实际的函数和数据。所以没有.lib文件,就算是有dll和.h文件还是使用不了的。那怎样生成.lib文件,这里以我的工程为例,在“Jsondll2”上右击,点击“添加”—>“新建项”–>“Visual C++”–>“代码”—>”模块定义文件(.def)”,写入动态链接库工程的名字,(一定要一样)。
上图:
- 在 jsondll2.def文件下的LIBRARY后面,添加Jsondll2。
- 在项目属性中“配置属性”-》“链接器”-》“输入”-》“模块定义文件”中添加jsondll2.def的文件,才可以。
- 以上工作都做完,才能编译成jsoncpp的动态链接库文件。
总结
- 生成动态链接库的步骤和方法自从学完MFC,就再也没有用过,具体详细过程和步骤可参考《VC++深入详解》(孙鑫的书) 19章动态链接库。
- 为了以后大家在工程中,再也不用编译jsoncpp的动态链接库文件,我决定将此工程和文件共享出来。源码,可以直接使用动态库文件,和测试代码。
这篇关于JSON解析-开源jsoncpp---动态链接库生成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!