gcc中的-w -W和-Wall选项
今天在看一个makefile时看到了gcc -W -Wall....这句,不明其理,专门查看了gcc的使用手册。
-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。
-Wall选项意思是编译后显示所有警告。
-W选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
在编译一些项目的时候可以-W和-Wall选项一起使用。
举个例子:
- #include <stdio.h>
- void main()
- {
- int a=1.0*4;
- return 0;
- }
直接编译
gcc -o test_w_wall testwwall.c
只显示这一个警告,下面使用-w选项。
gcc -w -o test_w_wall testwwall.c
不会显示任何警告,直接编译成功。
gcc -Wall -o test_w_wall testwwall.c
显示了所有的警告,比之前不使用任何选项多出了变量a未使用这个警告,也多出了main函数的返回值不是int型。
gcc -W -o test_w_wall testwwall.c
只显示了没有返回值的main函数不应该有return一个值这个警告。
gcc -W -Wall test_w_wall testwwall.c
比单独使用-W多出了变量为使用这个警告,比-Wall选项少了一个看起来重复的main函数返回值不是int这个警告。
之前看了一篇国外程序员写的博客,说编译时不使用-W -Wall选项的是stupid的,所以编译时还是尽量带上吧。
致谢:
1、gcc中的-w -W和-Wall选项
gcc中的-w -W和-Wall选项相关推荐
- GCC中 -I、-L、-l 选项的作用
在makefile中经常会看到这些选项,gcc默认会在程序当前目录.path路径中查找所需要的材料 如何给gcc添加我们自己的原材料(头文件,库等) -I (注意是大写的i) 给gcc添加自定义的头文 ...
- 区别gcc中的-w -W和-Wall选项
区别gcc中的-w -W和-Wall选项 man 举例: man -w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告 ...
- gcc的-g,-o,-c,-D,-w,-W,-Wall,-O3等参数的意义
一.-g -g可执行程序包含调试信息 -g为了调试用的 加个-g 是为了gdb 用,不然gdb用不到 二.-o -o指定输出文件名 -o output_filename,确定输出文件的名称为outpu ...
- gcc编译命令的常用选项——强烈推荐大家使用 -Wall 选项
C程序编编译的过程分为如下四个阶段 1.预处理:头文件展开(#include).宏替换(#define).条件编译(#ifdef)(.i)使用预处理器(预处理阶段处理的都是以#开头的代码) 2.编译: ...
- JavaScript中 var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //邮箱检测
正则表达式 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* \w任意大小写英文字母 0-9数字 下划线 +为至少出现1个以上字符 [-+.]\w+ 任意包 ...
- arm linux gcc fpic,【待整理】Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义
[待整理]Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义 -fpic Generate position-independent code (PIC) suit ...
- GCC中常用的优化的参数
-pipe 的作用: 使用管道代替编译中临时文件, -pipe 加速编译 gcc -pipe foo.c -o foo 加速 在将源代码变成可执行文件的过程中,需要经过许多中间步骤,包含预处理.编译. ...
- GCC中SIMD指令的应用方法
X86架构上的多媒体应用开发,如果能够使用SIMD指令进行优化, 性能将大大提高.目前,IA-32的SIMD指令包括MMX,SSE,SSE2等几级. 在GCC的开发环境中,有几种使用SIMD指令的方式 ...
- gcc中的内嵌汇编语言(Intel i386平台)
gcc中的内嵌汇编语言(Inteli386平台) 一.声明 虽然Linux的核心代码大部分是用C语言编写的,但是不可避免的其中还是有一部分是用汇编语言写成的.有些汇编语言代码是直接写在汇编源程序中的, ...
最新文章
- Linux中java项目环境部署,简单记录一下
- vs2010利用属性表自动配置OpenCV(XP的32位系统,opencv版本是2.4.10)
- 三级数据库还是linux好,08年计算机三级数据库辅导:如何修改Linux下MySQL5.0的默认连接数...
- Angular ngTemplateOutlet 元素的学习笔记
- 程序员每天应该思考的5个问题,你有思考过吗?
- linux select 进程id,Linux基础命令---显示进程ps
- 自制操作系统(五) 保护模式寻址原理、字符鼠标指针显示
- 剑指offer--面试题10
- 使用Git和远程代码库
- MSSQL coalesce系统函数简介
- Fedora13下编译libfetion的问题和解决办法
- PMP考试的打分标准是怎样的?
- Saved Blogs
- miR数据分析处理流程
- Linux Command—— Wildcard
- MySQL主从复制以及会出现的幺蛾子问题、解决方法
- js判断时间是否在某一时间段内
- 《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf
- webshell一句话
- 使用Psycopg2连接openGauss 3.0(python3)