Android native项目编译v7a时-Werror参数导致报错
在GitHub上下载了一个demo,自己编译运行时,v8a的so是可以正常编译运行的,但是就是v7a的不能也一直报错,最后发现在Android.mk文件里去掉-Werror字段就可以了。于是上网了解了一下关于-Werror的意思,这里记录一下
Android源码下编译Native源码采用Android.mk或者Android.bp,由于源码编译选项越来越严格,特别是Android O平台以后,默认编译选项都使用了-Wall -Werror字段,现在简要说明下
1. -Wall和-Werror字段
- Wall:编译阶段显示所有警告。
- Werror:将所有的警告当成错误进行处理,使出现警告时就停止编译,这种错误是最常见的。
2. LOCAL_CFLAGS
LOCAL_CFLAGS是Android.mk中定义的一个编译选项,稍微总结下常用:
-D选项,相当于添加宏定义,例如:LOCAL_CFLAGS += -DXXX相当于在所有源文件中增加一个宏定义#define XXX-O代表默认优化,可选:-O0不优化,-O1低级优化,-O2中级优化,-O3高级优化,-Os代码空间优化,用得少,暂不在讨论范围之内。-g是生成调试信息,生成的可执行文件具有和源代码关联的可调试的信息
-W[no-]<警告选项> no- 表示诊断时忽略这个警告 ,这个是本文的重点地方,划重点了
编译器的警告设置参数,拥有众多的选项,下面举一些常用的例子:-Woption 让编译器给出option指定的编译警告,常用的一些如下:
unused-function: 遇到仅声明过但尚未定义的静态函数时发出警告
unused-parameter: 从未用过的函数参数的警告。
unused-variable: 在本地声明但从未用过的变量的警告。
unused-value: 经计算但从未用过的值得警告。
return-type: 对函数返回类型不当的警告。
uninitialized:在初始化之前就使用自动变量。
float-equal: 比较两个浮点数是否相等。 -Wall 给出“几乎”所有的编译器警告,注意是“几乎”。下面是一些-Wall没有输出的警告类型:
sign-compare:将有符号类型和无符号类型数据进行比较时发出警告。
unreachable-code:如果发现从未执行的代码时给出警告。
inline:如果某函数不能按要求内嵌(inline),则无论是函数声明为inline或者是指定了
-finline-functions 选项,编译都将发出警告。 -Werror 把所有的警告都视为错误处理。 -Wno-option 如果我们不想输出某些警告信息,可以使用此参数形式,
比如:LOCAL_CFLAGS := -Wno-unused-parameter
Android native项目编译v7a时-Werror参数导致报错的更多相关文章
- Mysql 书写语句时避免出现关键字导致报错 关键字大全
ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
C#编译器优化那点事 使用C#编写程序,给最终用户的程序,是需要使用release配置的,而release配置和debug配置,有一个关键区别,就是release的编译器优化默认是启用的.优化代码 ...
- vue项目初始化时npm run dev报错webpack-dev-server解决方法
vue项目初始化时npm run dev报错webpack-dev-server解决方法 原因:这是新版webpack存在的BUG,卸载现有的新版本webpack,装老版本就好webpack-dev- ...
- webRTC中回声消除(AEC)模块编译时aec_rdft.c文件报错:
webRTC中回声消除(AEC)模块编译时aec_rdft.c文件报错. 原因是: 局部变量ip跟全局变量冲突的问题,可以将局部变量重新命名一下,就可以通过编译了. aec_rdft.c修改以后文件代 ...
- 安装php时,make步骤报错make: *** [ext/gd/gd.lo] Error 1
安装PHP时,make步骤报错make: *** [ext/gd/gd.lo] Error 1 /usr/local/src/LAMP+memcahed+catci/php-5.4.0/ext/gd/ ...
- laravel 项目表单中有csrf_token,但一直报错419错误 解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi
laravel 项目表单中有csrf_token,但一直报错419错误,因为项目中使用到Redis缓存,在强制关闭Redis后出现的问题,查询laravel.log文件查找相关问题 安装redis后在 ...
- 关于导入本地maven项目pom.xml出现missing artifact org....报错处理
一.导入本地maven项目步骤:
- python踩坑系列之导入包时下划红线及报错“No module named”问题
python踩坑系列之导入包时下划红线及报错“No module named”问题 使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshand ...
- Python模块学习之xlrd 读取Excel时传入formatting_info=True报错:NotImplementedError: formatting_info=True not yet implemented
问题:xlrd读取Excel时传入 formatting_info=True 报错 之前我们使用读取xls文件的时候都是使用的xlrd库,但是这个库只能操作 .xls格式,对于后来的 .xlsx的版本 ...
- MatOfPoint作为minAreaRect的参数总是报错"throw new IllegalArgumentException("Incomatible Mat");
MatOfPoint matPt = contours.get(i) minRect.set(i, Imgproc.fitEllipse( new MatOfPoint2f(matPt) ...
随机推荐
- 【题解】P9749 [CSP-J 2023] 公路
\(Meaning\) \(Solution\) 这道题我来讲一个不一样的解法:\(dp\) 在写 \(dp\) 之前,我们需要明确以下几个东西:状态的表示,状态转移方程,边界条件和答案的表示. 状态 ...
- 20.1 DLL模块的显式加载和符号链接--《Windows核心编程》
一.显式加载DLL模块使用函数 LoadLibrary/LoadLibraryEx HINSTANCE LoadLibrary(PCTSTR pSzDLLPathName); HINSTANCE Lo ...
- 《ASP.NET Core 与 RESTful API 开发实战》-- (第8章)-- 读书笔记(下)
第 8 章 认证和安全 8.3 HTTPS HTTP 协议能够在客户端和服务器之间传递信息,特点是以明文的方式发送内容,并不提供任何方式的数据加密 为了解决 HTTP 协议这一缺陷,需要使用另一种协议 ...
- Yum安装的Nginx安装新模块解决办法
Nginx版本1.22 Yum安装 Step1 去官网下载对应版本的源码包 Nginx源码包官网下载地址 Step2 上传到服务器 tar -xf nginx-1.22.1.tar.gz cd ngi ...
- DP的各种优化小结
动态规划算法(简称动规,DP),是IO中最为常见的,也是最为重要的算法之一.这也就意味着,在各种题目与比赛中它会有很多稀奇古怪的算法和优化,时不时地在你的面前出现一个TLE,MLE和RE来搞你的心态. ...
- NC20115 [HNOI2015]菜肴制作
题目链接 题目 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号 ...
- Linux常用的20个命令(下)
无论你是后端程序员还是前端程序员,都避免不了和Linux打交道.上篇介绍了Linux常用的20个命令其中的10个,本文继续介绍剩下的10个命令. 11.man 命令 manual的缩写,即使用手册的意 ...
- MySQL基础之DDL语句
讲解SQL语句三大分类和每个分类的SQL使用入门. 使用的是数据库是:MySQL 8.0.27 1.SQL分类 DDL(Data Definition Language)语句:数据定义语句. 用途 ...
- LTspice XVII使用笔记
安装 前往官网下载 https://www.analog.com/cn/design-center/design-tools-and-calculators/ltspice-simulator.htm ...
- vscode添加自定义html片段
最近在学vue,用的是微软的vscode 开发工具. 很不错,赞一下微软.里面包含了众多插件大家可以各取所需. 另外有一项实用的功能,User Snippets 用户自定义代码段, 对于那些需要重复编 ...