C语言GCC基础培训.pptVIP

  • 0
  • 0
  • 约1.71万字
  • 约 77页
  • 2019-07-13 发布于湖北
  • 举报
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)

1亿VIP精品文档

相关文档