作用:将编译输出文件 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 的常用编译参数