gcc常用选项
1.什么是gcc
GNU Compiler Collection,译为GNU编译器集合。
2.支持的语言
gcc当前支持的语言包括C, C++, Objective-C, Objective-C++, Java, Fortarn, Ada等等。
3.常用选项
一个c语言源程序生成可执行程序需要经过如下几步,预处理,编译,汇编,链接。一般只需要知道预处理,编译阶段,链接阶段就可以了,编译阶段是将源文件翻译成二进制的目标文件,链接阶段是将目标文件和库链接成可执行文件。
-E只做预处理,不做编译,汇编,链接
-S只做编译,不做汇编和链接
-c编译和汇编,不做链接
(1)-D宏定义
-D name,相当于#define name 1
-D name=definition,相当于#define name definition
(2) -U name取消某个宏定义,相当于#undef name
(3)-g在生成的目标文件中加上调试信息
(4)-o file指定输出文件的文件名
(5)-Wall打印所有警告信息
(6) -static链接时采用静态链接,gcc默认的是先采用动态链接,如果没有才采用静态链接
(7) -shared将目标文件链接成共享库,生成目标文件时加上-fpic或-fPIC
(8) –Idir添加一个目录到系统到头文件搜索目录中
(9) –Ldir添加一个目录到系统到库文件搜索目录中
(10) –llibrary指定要链接共享库的名字
(11)-v打印详细的编译链接过程
(12)-O用于优化处理,优化级别有-O0、-O1、-O2、-O3,级别越高,优化效果越好,编译时间越长
(13)—std指定才用哪个标准,例如—std=c89,只采用c89标准,其他标准还有,c99、-ansi、iso9899:1990、iso9899:1999、gnu89、gnu99等
(14) -MM在编写Makefile时有用,可以帮助我们知道目标文件依赖哪些文件,比如test.c包含test.h,gcc -MM test.c,将打印出test.c和test.h,系统依赖的文件不会列举出