background image

作用:将编译输出文件 test.o 链接成最终可执行文件 test。输入./test

 

执行程序。

7. 选项-O 
用法:#gcc -O1 test.c -o test 
作用:使用编译优化级别 1 编译程序。级别为 1~3,级别越大优化效果越好,但编译时间
越长。输入./test

 

执行程序。

二. 

 

多源文件的编译方法

 

如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为 test.c 和 testfun.c] 

1. 

 

多个文件一起编译

用法:#gcc testfun.c test.c -o test 
作用:将 testfun.c 和 test.c 分别编译后链接成 test

 

可执行文件。

2. 

 

分别编译各个源文件,之后对编译后输出的目标文件链接。

 

用法:
#gcc -c testfun.c //将 testfun.c 编译成 testfun.o 
#gcc -c test.c //将 test.c 编译成 test.o 
#gcc  testfun.o test.o -o test //将 testfun.o 和 test.o 链接成 test 

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只
重新编译修改的文件,未修改的文件不用重新编译。

1. gcc

 

的家族成员

    总的来说,gcc 应该是一个编译器。可是,为什么我还要在这里介绍 gcc 的家族成员呢?
其实,整套的 gcc 环境并不是由 gcc 构成的,他是由多个包所组成的。这些包的互相作用
产生了 gcc 的开发环境。其中,有一些包是你开发应用程序所必备的基本包。离开这些包
你将无法正常使用 gcc  

    gcc

 

开发环境包括如下几大包:

    binary                         

   

 

基本包 提供基本的汇编器,连接器等

    gcc                            

   

基本包 各种语言的编译器,包括 C,C++,Ada,Java

 

    Win32api,mingwi-runtime/glibc  

   

 

基本包 系统函数库

    make/automake                  

   

 

需要包 管理项目编译的程序

    gdb                            

   

 

附加包 调试程序

2. gcc 的常用编译参数