GCC使用简介

C程序中的文件名后缀

扩展名文件内容
.a静态对象库(文档)
.cC语言源代码
.hC语言源代码的头文件
.i无需处理的C语言源代码文件,编译过程的中间产物
.o目标文件,编译过程的中间产物
.s汇编语言代码(assembly language code),编译过程的中间产物
.so共享对象库(shared object library)

编译选项

  • -o:指定编译程序输出的可执行程序名
  • -c:编译源代码,但跳过将目标文件连接到可执行程序这一步,输出文件与输入文件名称相同但以.o为后缀,可以用-o选项修改输出文件名称
  • -E:对源代码进行预处理并输出到标准输出,可以用重定向导出,比如gcc -E test.c > output.txt
  • -S:编译程序生成汇编语言代码,编译后生成.s文件
  • -g:产生GDB调试所需要的信息
  • -O:对程序进行优化编译,链接,耗时会有所增加
  • -O2:更好的优化编译,链接,耗时会更长

警告选项

  • -pedantic:打开完全服从ANSI C标准所需的全部警告诊断,拒绝接受采用了被禁止的语法扩展的程序
  • -Wunused:如果某个局部变量除了声明就没再使用,或者声明了静态函数但是没有定义,或者某条语句的运算结果显然没有使用, 编译器就发出警告
  • -Wshadow:一旦某个局部变量屏蔽了另一个局部变量,编译器就发出警告
  • -Wconversion: 如果某函数原形导致的类型转换和无函数原形时的类型转换不同,编译器就发出警告.这里包括定点数和浮点数的 互相转换,改变定点数的宽度或符号,除非他们和缺省声明(default promotion)相同
  • -Werror:把警告当作是错误,出现任何警告即放弃编译
  • -Wextra:提供额外的警告信息
  • -Wall:打开绝大部分警告,通常可以使用-Wall开启以下警告: -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat
    -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration
    -Wcomment -Wformat -Wmain (only for C/ObjC and unless
    -ffreestanding) -Wmissing-braces -Wnonnull -Wparentheses
    -Wpointer-sign -Wreorder -Wreturn-type -Wsequence-point
    -Wsign-compare (only in C++) -Wstrict-aliasing -Wstrict-overflow=1
    -Wswitch -Wtrigraphs -Wuninitialized (only with -O1 and above)
    -Wunknown-pragmas -Wunused-function -Wunused-label -Wunused-value
    -Wunused-variable

参考资料:
《GCC技术参考大全》
GNU GCC手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值