GCC的编译流程详解

GCC的编译流程详解

ID:42770074

大小:19.53 KB

页数:5页

时间:2019-09-21

GCC的编译流程详解_第1页
GCC的编译流程详解_第2页
GCC的编译流程详解_第3页
GCC的编译流程详解_第4页
GCC的编译流程详解_第5页
资源描述:

《GCC的编译流程详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、GCC的编译流程详解   在进行openvpn移植时,因为需要lzo库和openssl库的支持,而我又不想生成共享库,所以采取了静态编译的方式。但是在编译链接时错把-static理解是编译的参数了,实际上是对于编译和链接的概念还有点模糊。网友孤云为我举了一个例子,如下:    (1)A=gcc B=-o-static   (2)A=gcc-static B=-o    A+B,对于结果,这两个是没有什么区别的,但是,A和B完全就不同了。为了深入理解C语言编译链接的整个流程,我结合华清远见的Linux下的C语言编程基础,实践

2、之后认识就深刻多了。    一、首先,先对Linux下C语言开发的流程有个大体的了解。简单的说,就是:   1、编写C程序源代码*.c   2、预处理(Pre-Processing)   3、编译(Compiling)   4、汇编(Assembling)-->生成目标代码*.o   5、链接(Linking)-->生成可执行文件   6、调试    其中,第一步工作用编辑器来实现,用Emacs、Vi(m)都可以。我现在习惯用Vim。在RedHat9.0中,Vim版本为6.1,系统采用alias用vi作为vim的别名,因此在shell提示符下输入vi实际上使用的编辑器vim(ViIMpro

3、ved)。你可以使用which查看一下: [armlinux@lqmprogram]$whichvialiasvi='vim'       /usr/bin/vim    除去第6步的工作由GDB之类的调试器来完成,中间的四步工作都是由GCC来完成的。    二、下面大体了解一下GCC。---------------------------------------标准·ANSIC:这一标准是ANSI(美国国家标准局)于1989年制定的C语言标准。后来被ISO(国际标准化组织)接受为标准,因此也称为ISOC。ANSIC的目标是为各种操作系统上的C程序提供可移植性保证,而不仅仅限于UNIX。该

4、标准不仅定义了C编程语言的语发和语义,而且还定义了一个标准库。这个库可以根据头文件划分为15个部分,其中包括:字符类型()、错误码()、浮点常数()、数学常数()、标准定义()、标准I/O()、工具函数()、字符串操作()、时间和日期()、可变参数表()、信号()、非局部跳转()、本地信息()、程序断言()等等。·POSIX:该标准

5、最初由IEEE开发的标准族,部分已经被ISO接受为国际标准。该标准的具体内容见1.1.3。POSIX.1和POSIX.2分别定义了POSIX兼容操作系统的C语言系统接口以及shell和工具标准。这两个标准是通常提到的标准。·SVID:SystemV的接口描述。SystemV接口描述(SVID)是描述AT&&;TUnixSystemV操作系统的文档,是对POSIX标准的扩展超集。·XPG:X/Open可移植性指南。X/Open可移植性指南(由X/OpenCompany,Ltd.出版),是比POSIX更为一般的标准。X/Open拥有Unix的版权,而XPG则指定成为Unix操作系统必须满足的要

6、求。---------------------------------------   GCC是GNUCC的简称,它是符合上述ANSIC标准的编译系统,能够编译C、C++、ObjectC等语言编写的程序。GCC还是一个交叉平台编译器,能够在当前CPU平台为多种不同架构的硬件平台开发软件,因此适合嵌入式领域的开发编译。 GCC所支持的后缀名的解释.cC原始程序.C/.cc/.cxx C++原始程序.m ObjectC原始程序.i 已经过预处理的C原始程序.ii 已经过预处理的C++原始程序.s/.S 汇编语言原始程序.h 预处理文件(头文件).o 目标文件.a/.so 编译后的库文件    

7、三、详解GCC编译流程   使用vi编写源文件hello.c。  #includeintmain(){       inti;       for(i=1;i<9;i++)               printf("HelloWorld%dtimes!",i);       return0;}    1、预处理阶段    该阶段的作用是把预处理文件,也就是头文件编译进来。在此例中,就是要把stdi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。