今天在看一个makefile时看到了gcc -W -Wall....这句,不明其理,专门查看了gcc的使用手册。

-w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。

-Wall选项意思是编译后显示所有警告。

-W选项类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。

在编译一些项目的时候可以-W和-Wall选项一起使用。

举个例子:

[cpp] view plain copy
  1. #include <stdio.h>
  2. void main()
  3. {
  4. int a=1.0*4;
  5. return 0;
  6. }

直接编译

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选项相关推荐

  1. GCC中 -I、-L、-l 选项的作用

    在makefile中经常会看到这些选项,gcc默认会在程序当前目录.path路径中查找所需要的材料 如何给gcc添加我们自己的原材料(头文件,库等) -I (注意是大写的i) 给gcc添加自定义的头文 ...

  2. 区别gcc中的-w -W和-Wall选项

    区别gcc中的-w -W和-Wall选项 man 举例: man -w的意思是关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告 ...

  3. gcc的-g,-o,-c,-D,-w,-W,-Wall,-O3等参数的意义

    一.-g -g可执行程序包含调试信息 -g为了调试用的 加个-g 是为了gdb 用,不然gdb用不到 二.-o -o指定输出文件名 -o output_filename,确定输出文件的名称为outpu ...

  4. gcc编译命令的常用选项——强烈推荐大家使用 -Wall 选项

    C程序编编译的过程分为如下四个阶段 1.预处理:头文件展开(#include).宏替换(#define).条件编译(#ifdef)(.i)使用预处理器(预处理阶段处理的都是以#开头的代码) 2.编译: ...

  5. JavaScript中 var reEmail=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; //邮箱检测

    正则表达式 \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* \w任意大小写英文字母 0-9数字 下划线  +为至少出现1个以上字符 [-+.]\w+   任意包 ...

  6. arm linux gcc fpic,【待整理】Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义

    [待整理]Gcc中编译和链接选项 -fpic -fPIC -fpie -fPIE -pie的含义 -fpic Generate position-independent code (PIC) suit ...

  7. GCC中常用的优化的参数

    -pipe 的作用: 使用管道代替编译中临时文件, -pipe 加速编译 gcc -pipe foo.c -o foo 加速 在将源代码变成可执行文件的过程中,需要经过许多中间步骤,包含预处理.编译. ...

  8. GCC中SIMD指令的应用方法

    X86架构上的多媒体应用开发,如果能够使用SIMD指令进行优化, 性能将大大提高.目前,IA-32的SIMD指令包括MMX,SSE,SSE2等几级. 在GCC的开发环境中,有几种使用SIMD指令的方式 ...

  9. gcc中的内嵌汇编语言(Intel i386平台)

    gcc中的内嵌汇编语言(Inteli386平台) 一.声明 虽然Linux的核心代码大部分是用C语言编写的,但是不可避免的其中还是有一部分是用汇编语言写成的.有些汇编语言代码是直接写在汇编源程序中的, ...

最新文章

  1. Linux中java项目环境部署,简单记录一下
  2. vs2010利用属性表自动配置OpenCV(XP的32位系统,opencv版本是2.4.10)
  3. 三级数据库还是linux好,08年计算机三级数据库辅导:如何修改Linux下MySQL5.0的默认连接数...
  4. Angular ngTemplateOutlet 元素的学习笔记
  5. 程序员每天应该思考的5个问题,你有思考过吗?
  6. linux select 进程id,Linux基础命令---显示进程ps
  7. 自制操作系统(五) 保护模式寻址原理、字符鼠标指针显示
  8. 剑指offer--面试题10
  9. 使用Git和远程代码库
  10. MSSQL coalesce系统函数简介
  11. Fedora13下编译libfetion的问题和解决办法
  12. PMP考试的打分标准是怎样的?
  13. Saved Blogs
  14. miR数据分析处理流程
  15. Linux Command—— Wildcard
  16. MySQL主从复制以及会出现的幺蛾子问题、解决方法
  17. js判断时间是否在某一时间段内
  18. 《Linux命令行与Shell脚本编程大全第2版.布卢姆》pdf
  19. webshell一句话
  20. 使用Psycopg2连接openGauss 3.0(python3)

热门文章

  1. wap.php,wap.php
  2. Tensorflow2.x框架-神经网络八股扩展-自制数据集
  3. VSAN集群报配置错误处理
  4. docker搭建蚂蚁笔记
  5. 2020年工作日统计
  6. 老娘舅餐饮冲刺A股:拟募资8.3亿 杨国民杨峻珲父子为实控人
  7. [GYCTF2020]Ezsqli
  8. 带优先级的三人表决器
  9. 渗透武器库--burpSuite实战(最强web安全工具,没有之一)
  10. 也许我们都小看了亚马逊AWS(中国)!