网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言-GCC基础培训.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言-GCC基础培训

C语言-GCC 上海**通信技术有限公司 Jim(seniordba@) 2011-05 培训大纲 一、gcc简介 二、gcc编译过程 三、gcc编译选项 四、静态/动态链接库 五、其它 gcc简介 名称: GNU project C and C++ Compiler GNU Compiler Collection gcc是一个全功能的?ANSI?C?兼容编译器,它是所有UNIX系统可用的C编译器。 gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。 查看版本信息 查看安装路径 相关文件类型 c 为后缀的文件,C语言源代码文件; .a 为后缀的文件,是由目标文件构成的档案库文件; .C,.cc或.cxx 为后缀的文件,是C++源代码文件; .h 为后缀的文件,是程序所包含的头文件; .i 为后缀的文件,是已经预处理过的C源代码文件; .ii 为后缀的文件,是已经预处理过的C++源代码文件; .m 为后缀的文件,是Objective-C源代码文件; .o 为后缀的文件,是编译后的目标文件; .s 为后缀的文件,是汇编语言源代码文件; .S 为后缀的文件,是经过预编译的汇编语言源代码文件。 gcc编译的4个过程 预处理(也称预编译,Preprocessing): 命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。 编译(Compilation): 接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。 汇编(Assembly): 汇编过程是针对汇编语言的步骤,调用as进行工作。 连接(Linking): 当所有的目标文件都生成之后,gcc就调用 ld来完成最后的关键性工作,这个阶段就是连接 可执行程序的生成过程 预处理(Preprocessing):分析各种预处理命令,如#define, #include, #if等; 编译(Compilation): 根据输入文件产生汇编语言的程序; 汇编(Assembly): 将汇编语言输入,产生扩展名为.o的目标文件; 链接(Linking):以.o目标文件,库文件作为输入,生成可执行文件; 培训大纲 一、gcc简介 二、gcc编译过程 三、gcc编译选项 四、静态/动态链接库 五、其它 GCC编译过程 典型的编译过程 test.c –预处理? test.i –编译? test.s –汇编?test.o –连接? test $ cat test.c (查看程序源代码) #include stdio.h int main(int argc, char *argv[]) { printf(hello world\n); return 0; } $ gcc –o test test.c (编译连接程序) $ ./test (执行test程序) 1、没有任何选项:gcc helloworld.c 结果会在和helloworld.c相同的目录下产生一个a.out的可执行文档。 2、-o选项,指定输出文档名:gcc -o helloworld helloworld.c -o意思是Output即需要指定输出的可执行文档的名称。这里的名称为helloworld。 3、-c选项,只编译汇编 ,不连接:gcc -c helloworld.c -c意思就是Compile,产生一个叫helloworld.o的目标文档 4、-S选项,产生汇编源文档:gcc -S helloworld.c -S意思就是aSsemble,产生一个叫helloworld.s的汇编源文档 5、-E选项,预处理C源文档:gcc -E helloworld.c -E意思就是prEprocess。输出不是送到一个文档而是标准输出。当然能够对他进行重定向: gcc -E helloworld.c helloworld.txt 预处理 预编译命令:  $ gcc -o test.i -

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档