vc使用jsoncpp头文件冲突问题
编译时出现
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2365: “operator new”: 重定义;以前的定义是“函数”
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2078: 初始值设定项太多
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2440: “初始化”: 无法从“int”转换为“void *”
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error C2227: “->_Name”的左边必须指向类/结构/联合/泛型类型
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error C2228: “.c_str”的左边必须有类/结构/联合
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2065: “_Cat”: 未声明的标识符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2065: “_Other”: 未声明的标识符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2228: “._Ptr”的左边必须有类/结构/联合
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : fatal error C1003: 错误计数超过 100;正在停止编译
jsoncpp的代码拿着好久了,一直不能加入到自己库,总出现这些错误,一直没搞明白怎么回事
今天无意中发现是debug版本中是new在作怪
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
搞的好纠结的,印象中试过几次 都没找着问题,哎..
解决方式如下:修改json.h
#ifndef JSON_JSON_H_INCLUDED
# define JSON_JSON_H_INCLUDED #ifdef new
#define REDEFINE_NEW
#undef new
#endif // new //# include "autolink.h"
# include "value.h"
# include "reader.h"
# include "writer.h"
# include "features.h" #ifdef REDEFINE_NEW
#define new DEBUG_NEW
#endif // REDEFINE_NEW #endif // JSON_JSON_H_INCLUDED
先取消new的DEBUG_NEW宏定义,尾巴上再重新定义宏,完美解决呀..
得养成好习惯,头文件中不能写的代码不能写... 我是有个模板类的头文件中使用了DEBUG_NEW宏,没法
vc使用jsoncpp头文件冲突问题的更多相关文章
- 1.svn 彻底clear时,注意代码备份 2.借助vc助手加头文件
1.svn 彻底clear时,注意代码备份 2.不小心彻底clear可以在回收站找到 3.借助vc助手加头文件
- VC++中的头文件包含问题
在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已 ...
- VC中添加头文件以及库
原文:http://blog.csdn.net/lwb102063/article/details/52068389 附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tool ...
- [转]VC++的类头文件
本文转自:http://blog.csdn.net/forevertali/article/details/4370602 animal.h //在头文件中包含类的定义及类成员函数的声明 clas ...
- vc++中 .H 头文件引用的顺序与符号关系
在使用 #include "math.h" 和 #include <math.h>时,引号 与尖括号的区别如下 此时math.h_1 在工程文件中 math.h_2 ...
- C++ 包含头文件 和 宏的使用 和 条件编译
1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. ...
- 预编译头文件pch
1. 预编译头文件 作用:提高编译效率.预编译头文件(扩展名为.PCH),是为了提高编译效率而使用的一种方法,把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.避免每次编译 ...
- C++中头文件与源文件的作用详解
一.C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件―― .cpp 文件和 .h 文件.其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码:而 .h 文件则被称作 ...
- 浅谈VC++中预编译的头文件放那里的问题分析
用C++写程序,肯定要用预编译头文件,就是那个stdafx.h.不过我一直以为只要在.cpp文件中包含stdafx.h 就使用了预编译头文件,其实不对.在VC++中,预编译头文件是指放到stdafx. ...
随机推荐
- Css相关用法个人总结
Css相关用法个人总结
- UVa 10562 Undraw the Trees(递归遍历)
题目链接: https://cn.vjudge.net/problem/UVA-10562 Professor Homer has been reported missing. We suspect ...
- 公众号开发之wx-tools+springboot应用实战-音乐爬虫推送[JAVA]
springboot+wx-tools实践!音乐爬虫推送公众号DEMOGitHub地址:wx-tools 最终DEMO源码地址: music_collector 先理一下大概的开发步骤: 1. 创建一 ...
- token是什么
对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不知道为什么要用他?更不知道其原理,今天我就带大家一起分析分析这东西. 一.我们先解释一下他的含义: 1 ...
- WPF备忘录(4)打个勾画个叉娱乐下
<Path Grid.Column="2" Data="M43,5 L20,40 20,40 0,20 6,15 18,26 37,7 43,5 z" F ...
- Jquery 基本动画
1.三组基本的动画 显示:show .隐藏hide.滑入:slideUp.滑出:slideDown.滑入滑出切换:slideTpggle.淡入:fadeIn.淡出:fadeOut.淡入淡出切换:fad ...
- [基础篇] 玄机网C#培训课程-初级.
课程目录 0x01第一课课前准备vs的选择与安装常用工具/网址 http://msdn.itellyou.cn/vs常用设置 0x02第二课C#的语法样式 编程风格VS的常用功能 俩个注意 ...
- zookeeper 知识点汇总
目录 Zookeeper 是什么 Zookeeper 树状模型 Zookeeper 集群结构 如何使用 ZooKeeper 运行 Zookeeper 步骤1 修改 ZooKeeper 配置文件 步骤 ...
- Hadoop windows 环境配置
下载 winutils 点击 这里下载 winutils 包,并解压缩. 此处解压缩后目录位置为 D:\software\hadoop2.6 配置环境变量 变量名 变量值 HADOOP_USER_NA ...
- CSS canvas 捕捉视频video元素截图
video元素介绍: http://www.runoob.com/html/html5-video.html https://developer.mozilla.org/zh-CN/docs/Web/ ...