想要在C++实现json文件的读取。因为中间也遇到过很简单的坑,为了增加记忆,对实现过程做一个记录。

本文采用的是静态链接库的方式:

1、先在github上下载源码, json源码下载地址

2、打开makefiles\msvc2010\jsoncpp.sln,会出现三个Project:jsontest, lib_json, test_lib_json

3、选择中间的lib_json项目,右键属性 —》C/C++ —》代码生成—》运行库,选择多线程DLL(/MD)

4、还是lib_json项目,右键重新生成,就会生成一个lib_json.lib文件。

5、将include\json文件夹下的.h文件拷贝出来,加入到自己的testjson工程包含目录下,将lib_json.lib拷贝到testjson工程的库目录下,并在配置属性—》链接器—》输入中,添加lib_json.lib

6、开始调试自己的testjson工程,可以使用json了

编译cef_binary_3.3112.1659.gfef43e0_windows32,生成了一个libcef_dll_wrapper.lib,供另一个工程所用。结果编译的时候报错。 
错误信息如下: 
1>libcef_dll_wrapper.lib(ImfTiledRgbaFile.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(obs-browser.obj 中) 
1>libcef_dll_wrapper.lib(IexBaseExc.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(obs-browser.obj 中) 
1>libcef_dll_wrapper.lib(ImfHeader.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(obs-browser.obj 中) 
1>libcef_dll_wrapper.lib(ImfFrameBuffer.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(obs-browser.obj 中)

工程的运行库不匹配导致的。

解决办法: 在编译生成libcef_dll_wrapper.lib的工程中修改, 
在工程上右键-》属性-》c/c++-》代码生成-》运行库 
有四个选项及含义分别如下: 
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug 
多线程Dll (/MD) 对应的是MD_DynamicRelease 
多线程(/MT) 对应的是MD_StaticRelease 
多线程(/MTd)对应的是MD_StaticDebug

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug 
从上面的错误提示可知,我们原来选择的是 多线程(/MTd) ,改为 多线程调试Dll (/MDd) 选项 即可。

当然有的人遇到这样的问题,是要将 多线程调试Dll (/MDd) 改为 多线程(/MTd) 解决问题的。 
无论是哪种,总之要将运行库选项配成一致即可!

VS2013下使用cjson的更多相关文章

  1. 在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误

    在win 7 vs2013下 web 调试 出现“ iis Express Worker Process 已停止工作”错误: 如下图:   最终解决方案如下: 用管理员身份运行CMD,输入netsh  ...

  2. C++11 图说VS2013下的引用叠加规则和模板参数类型推导规则

    背景:    最近在学习C++STL,出于偶然,在C++Reference上看到了vector下的emplace_back函数,不想由此引发了一系列的“探索”,于是就有了现在这篇博文. 前言:     ...

  3. vs2013下git的使用

    一.将VS2013项目托管到Git 现在的开源项目越来越多,我们会注意到这些开源项目大多共享在GitHub上面,包括微软开源的项目也在Github上,当然,如果你用过Git后,会发现Git确实不错,其 ...

  4. vs2013下的WCFRest 模板开发WCF

    在vs2013下使用wcfRestservice40 是安装不成功的,尝试多遍,都是这样.查看以前vs2012做的wcfrest,经过调教,终于在vs2013下也可以了! 1.新建wcf服务应用程序 ...

  5. live555—VS2010/VS2013 下live555编译、使用及测试(转载)

    Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等 的支持.Live555实现了对多种音视频 ...

  6. vs2013下配置opencv1.0.0

    vs2013下配置opencv1.0.0 2019-4-25 17:13:13 原因 现在最新opencv已经到4.0.1版了.用opencv1.0原因: 小.源码包只有10M左右. 清晰.他的文档结 ...

  7. 关于VS2013下制作和使用静态库和动态库

    关于VS2013下制作和使用静态库和动态库 引言 什么是库:库是写好的现有的,成熟的,可以复用的代码. 所谓静态.动态是指链接.将一个程序编译成可执行程序的步骤: 静态库在链接阶段,会将汇编生成的目标 ...

  8. 人脸识别引擎SeetaFaceEngine简介及在windows7 vs2013下的编译

    SeetaFaceEngine是开源的C++人脸识别引擎,无需第三方库,它是由中科院计算所山世光老师团队研发.它的License是BSD-2. SeetaFaceEngine库包括三个模块:人脸检测( ...

  9. VS2013下的64位与32位程序配置

    VS2013下的64位与32位程序配置   在Windows 7 64bit和Visual Studio 2013下生成64位程序. 新建一个Visual Studio Win32 Console项目 ...

随机推荐

  1. pagespeed模块安装——Nginx、Tengine

    1.安装好nginx或者tengine 2.下载pagespeed模块并且解压 sudo mkdir -p /usr/local/tengine/modules wget https://github ...

  2. (转)一个故事讲完https

    (转)一个故事讲完https 2 1  序言 今天来聊一聊https 安全传输的原理. 在开始之前,我们来虚构两个人物, 一个是位于中国的张大胖(怎么又是你?!), 还有一个是位于米国的Bill (怎 ...

  3. arch+win7 双系统启动引导

    笔者的电脑之前已经安装了win7,安装完arch后电脑中存在两个系统,因此需要引导连个系统. 1. 在安装arch时,一般都会安装grub.如果没有安装,则参考arch wiki中 grub2一节安装 ...

  4. kafka (搜索) 在idea api操作(官方apihttp://kafka.apache.org/documentation/#producerapi)

     https://blog.csdn.net/isea533/article/details/73822881        这个不推荐,可以看一下(https://www.cnblogs.com/b ...

  5. LightOJ 1098(均值不等式,整除分块玄学优化)

    We all know that any integer number n is divisible by 1 and n. That is why these two numbers are not ...

  6. delphi7的adoconnection控件连接不上

    delphi时选择以{以管理员身份运行 }即可

  7. Mybatis 拦截器报错org.apache.ibatis.executor.statement.StatementHandler.prepare(java.sql.Connection)

    出现此错误的原因是MyBatis 3.4.0 之后,StatementHandler的prepare方法做了修改,如下: 在args = { Connection.class }中添加第二个参数,即 ...

  8. uni-app开发踩坑记录

    大部分问题是我在h5端看不到而在android.iOS平台上暴露出来的,不包含小程序 1.:class="['defaultStyle', dynamicStyle]" 不支持直接 ...

  9. 二十一、Node.js-EJS 模块引擎

    初识 EJS 模块引擎 我们学的 EJS 是后台模板,可以把我们数据库和文件读取的数据显示到 Html 页面上面.它是一个第三方模块,需要通过 npm 安装https://www.npmjs.com/ ...

  10. iOS开发之动画中的时间(概况)

    一.引言 在iOS开发中使用动画时,可以通过设置动画的duration.speed.begintime.offset属性,来设置动画的时长.速度.起始时间及起始偏移. 用一个简单的例子来说明各个参数的 ...