GCC 7.3.0版本编译http-parser-2.1问题
http-paser是一个用c编写的http消息解析器,地址:https://github.com/nodejs/http-parser,目前版本2.9
今天用gcc 7.3.0编译其2.1版本时,编译器报错如下:

找到对应的代码:

http-parser的编译同时打开了-Wall -Wextra -Werror
-Wimplicit-fallthrough,是C++17标准引入的警告选项,因为这个地方没有break。如果编译时有编译选项-Wextra,该编译选项将添加。-Werror将警告视为错误报出。
参考文档:
https://developers.redhat.com/blog/2017/03/10/wimplicit-fallthrough-in-gcc-7/
具体文档介绍可参考,man gcc
备注:
最新版本编译没有问题,因为代码改为这样了

至于为什么改为这样就不报错了,因为默认Wimplicit-fallthrough=3的时候,加上/* fall through */是可以绕过的。详细请见gcc文档。
话说,直接添加一个下面的处理语句,再break不更好吗?代码复用到了极致了。
GCC 7.3.0版本编译http-parser-2.1问题的更多相关文章
- Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译过程(2)
		
前面因为博客园维修,所以内核编译过程一直没有发出来,现在把整个内核过程分享出来.本随笔给出内核的编译实现过程,在编译前需要参照我前面一篇随笔: Ubuntu20.04linux内核(5.4.0版本)编 ...
 - Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1)
		
最近项目也和linux kernel技术有关,调试内核和内核模块.修改内核源码,是学习内核的重要技术手段之一.应用这些技术时,都有一本基本的要求,那就是编译内核.因此,在分析内核调试技术之前,本随笔给 ...
 - gcc 6.2.0/6.3.0/8.2.0 编译安装
		
参考:http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html 下载地址在这里:https://ftp.gnu.org/gnu ...
 - CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0)  (完整)
		
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
 - hadoop源码编译——2.5.0版本
		
强迫症必治: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using b ...
 - 编译安装GCC 5.2.0
		
https://blog.atime.me/note/install-gcc-5.2.0-from-source.html 记录编译GCC 5.2.0时遇到的问题和解决方法,以备日后查询. 平时使用的 ...
 - CentOS 6下gcc升级的操作记录(由默认的4.4.7升级到6.4.0版本)
		
机房一台centos6.9机器部署了jenkins发布系统,开发人员在用node编译js,发现依赖的gcc版本低了,故需要将gcc升级到高版本(至少5.0版本以上),这里选择升级到6.4.0版本,下面 ...
 - nginx-1.12.0版本(编译安装)-自定义安装路径
		
nginx-1.12.0版本(编译安装)-自定义安装路径 安装路径:/application/nginx-1.12.0 1.前期准备 安装编译需要的gcc和gcc-c++ yum install -y ...
 - 【转】CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
		
原文地址:https://www.cnblogs.com/lzpong/p/5755678.html 我这里是centos7 升级到gcc8.1,过程差不多,参考这篇文章,记录一下. ---原文--- ...
 
随机推荐
- java解决跨域
			
方法中response.setHeader("Access-Control-Allow-Origin", "https://ding.taozugong.com" ...
 - mybatis 简单实现 left join
			
sql -- 表a ta (id,aname,bid) -- 表b tb (id,bname) SELECT T1.*, T2.BNAME FROM TA T1 LEFT JOIN TB T2 ON ...
 - Git & TortoiseGit
			
http://www.git-scm.com/download/ http://download.tortoisegit.org/ https://help.github.com/articles/g ...
 - SSH整合案例
			
1.Hibernate框架 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernat ...
 - JS 封装的结构关系
			
/* -- 封装 -- */var _packaging = function() { //私有属性和方法 var age = "12"; var method1 = functi ...
 - Android 文件存放路径【转】
			
对于应用携带的静态数据,可以放置在应用的assets目录或者res,raw目录下.对于assets目录下的静态数据,存在当文件最大支持1MB的局限,读取方式如下: 1 InputStream is = ...
 - css基础 引用方式 标签选择器 优先级 各式布局
			
今天讲的css基础,了解了css即层叠式表,是美化网页,控制页面的样式. 样式表引进网页的3种方式1内联式,语法例子:<div style="width: 100px;height: ...
 - Appium常用API(一)
			
Appium作为当下一款移动应用的自动化测试工具,对于测试来说重要性不言可寓,废话不多说,下面总结下它常用的API: 1.contextscontexts(self): Returns the con ...
 - numpy.convolve()
			
卷积函数: numpy.convolve(a, v, mode='full') Parameters: a : (N,) array_like First one-dimensional input ...
 - 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
			
Altera SOPC嵌入式系统设计教程 第1章 概述 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活.高效的SOC解决方案.它 ...