visual stdio 2015 编译jsoncpp遇到的常见问题

  1.  重复定义的问题,具体如下:

3>json_vc71_libmt.lib(json_value.obj) : error LNK2005: "public: static int const std::numeric_limits<unsigned short>::digits10" (?digits10@?$numeric_limits@G@std@@2HB) 已经在 json_vc71_libmt.lib(json_writer.obj) 中定义
3>json_vc71_libmt.lib(json_value.obj) : error LNK2005: "public: static int const std::numeric_limits<long>::digits" (?digits@?$numeric_limits@J@std@@2HB) 已经在 json_vc71_libmt.lib(json_writer.obj) 中定义
3>json_vc71_libmt.lib(json_value.obj) : error LNK2005: "public: static int const std::numeric_limits<unsigned __int64>::digits10" (?digits10@?$numeric_limits@_K@std@@2HB) 已经在 json_vc71_libmt.lib(json_writer.obj) 中定义

解决方案:lib_json工程上右键属性页--配置属性--C/C++---语言---禁用语言扩展,选为“否”,如下图:

2.  2>json_vc71_libmt.lib(json_writer.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(jsontest.obj 中)
2>json_vc71_libmt.lib(json_writer.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MT_StaticRelease”(jsontest.obj 中)
2>json_vc71_libmt.lib(json_value.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(jsontest.obj 中)

原因:jsontest是release版本,而链接的库是debug版本,把属性---C/C++---代码生成----运行库改为MT,具体如下:

修改为:

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读