gcc学习系列之一

写这系列文章是以为我要看看gcc的源码,但是还有很多问题,如:yacc的使用,RTL等。希望对此有兴趣的同道中人多多指教。

gcc是目前使用最广泛的免费的编译器之一,最近想看看gcc的源码,学习一下编译的技术。也希望对此有兴趣的同道中人能多多指教。

要学习一个软件的源代码,最好是首先学习一下这个软件的使用,所以在这里就简单的学习一下gcc的使用。

gcc是一个基于命令行的软件,所以要使用gcc,就应该学习它的命令选项。下面做一个简单的介绍,具体的还应该好好实践,要不学多少都会忘J

1.              全局选项,这可能是最常用的选项。Gcc的编译过程分为四个阶段:预处理,编译,汇编,连接。Gcc的选项可以分别进行这四个阶段,全局的选项就主要是控制这几个阶段的

-E:预处理之后停止

-c:汇编之后停止,产生obj文件,不进行连接。

-S:编译之后停止,产生.s文件,不进行汇编

-o:指定输出的文件名

-x language:指定编译的语言,而不是靠文件后缀来判断

-x  none:不指定编译的语言,用文件名后缀来判断进行处理,这样可以从某个阶段开始

2.警告选项,这类选项可以控制gcc编译过程中产生什么级别的警告信息

  -fsyntax-only:仅检查代码的语法错误

  -W:机制所有的警告信息

    -Wunused:对所有未使用的变量产生警告

3.调试选项,这类选项控制产生的文件,以供调试软件使用。注意,不使用这类选项,就不能用调试器调试产生的文件。

  -g:这是最常用的选项(我常用J),产生的文件可以被gdb使用

  -p:为分析程序prof产生附加的代码

4.优化选项,这类选项可以对代码进行优化

  -o

    -o0

    -o1

    -o2:这些都是优化级别

  -fno-inline:忽略inline关键字

5.预编译选项,用来指定预编译时的选项。

  这个我没有用过,呵呵,我还是很少编程的,所以也没有用过这些选项。大家自己看看吧。

暂时就这些吧,其它的我也不会了,慢慢学吧,我觉得能明白编译的几个阶段对学习源代码很重要,其它的再慢慢理解吧。要学习命令就看看它的手册吧。
                                              

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值