编译器的作用是将用高级语言或汇编语言编写的源代码翻译成处理器上等效的一系列操作命令。 针对嵌入式系统来说,其编译器数不胜数,其中gcc 和汇编器as 是非常优秀而且免费的编译工具。
编译器的输出被称为目标文件。 对于任何嵌入式系统而言,有一个高效的编译器、链接器和调试器是非常重要的,gcc 不仅在桌面领域中表现出色,还可以为嵌入式系统编译出高质量的代码。
使用语法:
gcc [option] filename...
其中,option 为gcc 使用时的选项,必须以“ -”开始,而filename 为欲以gcc 处理的文件,在使用gcc 时,必须给出必要的选项和文件名。 gcc 的整个编译过程,实质是分四步进行的,每步完成一个特定的工作,这四步分别为:预处理、编译、汇编和链接。 具体完成哪一步,由gcc 后面的开关选项和文件类型决定。
gcc 有超过100 个的编译选项可用,这些选项中的许多用户可能永远都不会用到,但一些主要的选项将会频繁用到。 以下为读者列出几种最常用的选项:
-c,编译或汇编源文件,但是不作链接,编译器输出对应于源文件的目标文件。
-S,编译选项告知gcc,在为C 代码产生了汇编语言文件后停止编译。 gcc 产生的汇编语言文件的缺省扩展名是“.s”。
-E,预处理后即停止,不进行编译。 预处理后的代码送往标准输出。
-o,要求编译器生成指定文件名的可执行文件。
-g,告知gcc 产生能被GNU 调试器使用的调试信息,以便调试程序。
-O,告知gcc 对源代码进行基本优化,这些优化在大多数情况下都会使程序执行得更快。(www.xing528.com)
-O2,告知gcc 产生尽可能小和尽可能快的代码。 “-O2”选项将使编译的速度比使用“O”时慢,但通常产生的代码执行速度会更快。
-Wall,指定产生全部的警告信息。
-pipe,在编译过程的不同阶段间使用管道而非临时文件进行通信,这个选项在某些系统上无法工作,因为那些系统的汇编器不能从管道读取数据。
下面通过一个具体的例子来介绍ⅵ编译器和gcc 编译器的使用。
任务:新建一个hello.c,并用gcc 编译,执行。
步骤:
①在当前目录下输入: vi hello.c,即可进入到vi 空文档命令模式。
②按“i”键,进入编辑状态,这时就可以输入程序了。
③由于在编辑态下,任何时候都可以按“Esc”键退到命令模式。 在命令模式下按“shift+:”组合键进入到末行模式,这时左下角有冒号(:)提示符,就可以输入命令了。 常用的命令有:存盘退出(为“:wq”),若不想存盘退出,则为“:q!”。
④在命令行状态下输入:# gcc hello. c-o halo,利用gcc 进入编译和链接程序,就可以生成hello 可执行文件。
⑤执行“#. / hello”然后回车,就可以输出“ hello!”。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。