在VS中使用Boost库出现Macro redefinition错误的解决方法(warning C4005)
最近使用Boost库做多线程开发,可视在vs中编译工程师总是遇到Macro redefinition错误,类似下面的错误描述
1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdint.h(116): warning C4005: 'INT8_C' : macro redefinition
1> c:\vc\include\boost\cstdint.hpp(376) : see previous definition of 'INT8_C'
一开始没有管,可视后来这东西实在是拖慢编译速度,于是不能忍,果断google之,发现boost官方已经有人提交了该bug而且状态是已经修复,参考下面的链接
Ticket #4182
下面回复说是需要在config文件中定义“BOOST_HAS_STDINT_H”这个宏就能解决问题,可是我实验了半天没有任何效果,然后看修复Changeset 62082,发现修改的是下面这个文件
boost/config/compiler/visualc.hpp
然后我检查自己使用的这个文件,发现已经是修复过的,可是为什么还有错误呢,于是我尝试注释掉
# define BOOST_HAS_STDINT_H
然后重新编译,发现问题果然解决了,
所以最后解决方法是:
修改vc编译器配置文件“boost/config/compiler/visualc.hpp”,注释掉“BOOST_HAS_STDINT_H”宏定义,可以解决问题
#if _MSC_VER >= 1600
//# define BOOST_HAS_STDINT_H
#endif
或者也可以把这几行完全注释掉
这样修改的原理推测:应该是微软的vc编译器的相关文件也同样处理过该问题,导致双方同时修改宏定义,进而导致相当于宏定义依然没有修改,文件重复包含。
2014-6-19更新:注意,如果使用命令行编译其他程序需要使用boost库的情况(例如编译mongodb cxx driver),有可能需要一些类型例如int64_t,这个时候则需要改宏定义,不能修改,否则会出现编译错误。
在VS中使用Boost库出现Macro redefinition错误的解决方法(warning C4005)的更多相关文章
- Eclipse中jvm执行库的Access restriction问题的解决方法
今天在写代码的时候遇到了jre system libraries的訪问限制问题,该库是jvm执行的依赖库rt.jar,解决方式例如以下: 步骤: (1)项目右击.出现Build Path.点击进入Ja ...
- Tomcat中出现"RFC 7230 and RFC 3986"错误的解决方法
在用axios从前台向后台发请求时,后台报错 Invalid character found in the request target. The valid characters are defin ...
- virtualbox虚拟机中mysql远程连接登陆报2003错误的解决方法
最近在virtualbox中安装了Ubuntu 14,配置了一个mysql server,设置的桥接网络模式.在其他电脑连接的时候,总是报2003错误.开始以为是localhost没有置换为%,运行u ...
- Mysql数据中Packet for query is too large错误的解决方法
有时,程序在连接mysql执行操作数据库时,会出现如下类似错误信息: Packet for query is too large (4230 > 1024). You can change th ...
- android studio安装中出现Failed to install Intel HAXM错误的解决方法
1.问题分析 从下面可以知道安装Intel HAXM失败,请检查haxm_silent_run.log这篇日志. (1)先了解一下什么是Intel HAXM Intel代表的是英特尔,HAXM的全程是 ...
- 在Visual Sutdio 2017中使用boost库
在Visual Sutdio 2017中使用boost库 转载 https://blog.csdn.net/u011054333/article/details/78648294 对C++有一 ...
- 在RedHat 7.2中安装boost库
在RedHat 7.2中安装boost库 环境,其它版本类似 Redhat7.2 64bit boost 1.64.0 步骤 去 boost官网 下载想要版本的.tar.gz,如下图 解压tar -v ...
- SQL Server2000企业管理器在Win7中新建表错误的解决方法
Sql Server2000建表错误与解决方法: 在Windwos7中SQL Server 2000企业管理器在新建表时会提示错误,尝试各种方法均告无效,包括升级SP3和SP4,最终发现如下规律可以暂 ...
- C语言中关于POW在不同状态下四舍五入的解决方法
这是今天作业中的一个代码: #include <stdio.h>#include<math.h>int main(){ printf("请输入一个整数:") ...
随机推荐
- 9-----BBS论坛
BBS论坛(九) 9.1.权限和角色模型定义 (1)cms/models class CMSPermission(object): ALL_PERMISSION = 0b11111111 # 1.访问 ...
- vue-cli中webpack配置解析
版本号 vue-cli 2.8.1 (终端通过vue -V 可查看) vue 2.2.2 webpack 2.2.1 目录结构 ├── README.md ├── build │ ├── build. ...
- MySQL 0 学习
ubuntu 安装mysql 创建用户 以及外部如何可视化连接的 方法 https://www.linuxidc.com/Linux/2017-01/139502.htm 2.3 MyS ...
- EDP项目结构规范心得
本文结合最近心得,希望对项目结构方面知识进行归纳,包括两部分 一.目录结构的说明 二.目录结构标准规范(以百度efe团队为例) 下面切入正题: 一.项目目录结构说明: 项目结构具体说明: 1.src目 ...
- php乱码的解决方法
一般如果会出现乱码,基本都是因为编码不统一造成的,所以我们只需要把编码改成一样的就好了. 我们编码一般都是以utf-8为主: 文件编码都是UTF-8无BOM,如果文件不是这个编码,可以使用文件编辑器转 ...
- C# DialogResult的用法
在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理.比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这个菜单之后,我们需 ...
- 处理IIS 255错误,和相关信息
不知不觉已经注册博客一年多了,当初看见博客园的大神,自己也想像他们一样多写一些有用的,结果,,,不言而喻.在这里又感慨了一下,进入正题了.. 最近在公司服务器接触的比较多, 遇到了一个255 的问题 ...
- HashMap源码详解与对比
前几天工作忙得焦头烂额时,同事问了一下关于Map的特性,刹那间懵了一下,紧接着就想起来了一些关于Map的一些知识,因为只要涉及到Collection集合类时,就会谈及Map类,因此理解好Map相关的知 ...
- .net core 共享 .Net Forms Authentication cookie
Asp.net 项目迁移到 asp.net core 项目后需要 兼容以前老的项目的登录方式. Forms Authentication cookie 登录. 从网上搜集到关于这个问题的解决思路都没有 ...
- iDempiere 使用指南 生产插件(Manufacturing)安装过程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
