GCC编译器笔记

16 篇文章 0 订阅

简介

目前在Linux下最常用的C语言编译器是GCC(GUN Compiler Collection).是GUN项目中符合ANSI C标准的编译系统。

能够编译C、C++、Object C等语言编写的程序,可以通过不同的前端模块来支持各种语言,如JAVA等。

基本常用参数

GCC编译器的调用参数有100多个,介绍几个最基本常用的参数。

GCC的基本用法

gcc [options] [filenames]

options为编译器需要的参数,filenames为相关文件的名称。

  • -c

只编译,不链接成为可执行文件,生成.o后缀的目标文件,通常用于编译不包含主程序的子程序文件。

  • -o

确定输出文件的名称(不能与源文件同名),不给名称默认为a.out。

  • -g

生产符号调试工具(GUN的GDB)所必要的符号讯息,要对源码进行调试,必须加入

  • -O

对程序进行优化编译、链接,但编译、链接的速度变慢

  • -O2

比-O更好的优化编译、链接,但更加慢

GCC在编译不符合ANSI/ISO C语言标准的源码时,加上-pedantic选项,使用了拓展语法的地方会产生相应的警告,但不能保证程序完全符合兼容ANSI/ISO C标准。

-Wall选项。使GCC尽可能产生多的警告信息。

-Werror选项,将所有警告当作错误处理。

调试

如果在编译时生成调试符号信息,可以使用GCC的-g或-ggdb选项。GCC在产生调试符号采用了分级,在-g选项后附加参数1、2、3来指定在代码中计入调试信息的多少,默认2,-g2。3最详细,1最少。

调试选项会使生成的二进制文件的大小剧增,增加程序在执行时的开销,尽在软件开发和调试阶段使用。

GCC还支持其他调试选项-p、-pg,他们会将剖析(Profiling)信息加入到最终生成的二进制代码中,对找出程序性能的瓶颈有帮助。

-p选项:会在生成的代码中加入通用剖析工具Prof能够识别的统计信息

-pg选项:生成只有GUN剖析工具Gprof才能识别的统计信息

优化

-O、-O2能够程序带来更好的执行性能

但在以下场合避免优化代码

  • 程序开发时
  • 资源受限时(优化会增加执行代码的体积)
  • 跟踪调试时

编译基本流程

预处理Pre-Processing

编译Compiling

汇编Assembling

链接Linking

其他编译工具

C++编译器G++

EGCS

F2C和P2C(Fortran代码转C代码,Pascal代码转C代码)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值