gcc常用命令选项

时间:2022-02-14 02:18:45

gcc这条命令用来将源代码生成可执行程序,下面来看一下gcc的常用选项。 
1、无选项编译链接 
例:命令:gcc test.c //会默认生成a.out可执行程序 
2、-E: 进行预处理和编译,生成汇编文件。 
命令:gcc -E test.c //会生成test.i文件

3、-S: 进行预处理,编译,汇编等步骤,生成“.s”文件 
例:命令:gcc -S test.c //会生成test.s文件

4、-c: 会直接生成二进制目标文件 
例:命令:gcc -c test.c //会生成test.o文件

5、-o :对生成的目标进行重命名 
例:命令:gcc -o test test.c //会生成名字是test可执行文件而不是默认的a.out

6、-pipe: 使用管道代替编译中的临时文件 
例:命令:gcc -pipe -o test test.c

7、-include file :包含某个代码。相当于在文件中加入#include 
例:gcc test.c -include /root/file.h

8、-Idir:当你使用#include”file”的时候,会先到你定制的目录里面查找

9、-I-:取消前一个参数的功能。一般在-Idir之后使用

10、-C:在预处理的时候不删除注释信息,一般和-E使用。

11、-M:生成文件关联信息。包含目标文件所依赖的所有源代码。

12、-MM:和-M一样,只不过忽略由#include所造成的依赖关系。

13、-MD:和-M相同,只不过将输出导入到”.d”文件里面

14、-MMD:和-MM相同,将输出导入到”.d”文件里面。

15、-llibrary:定制编译的时候使用的库 
例:gcc -lpthread test.c //在编译的时候要依赖pthread这个库

16、-Ldir:定制编译的时候搜索库的路径。如果是自己定制的库,可以用它来定制搜索目录,否则编译器只在标准库目录里面找,dir就是目录的名字

17、-O0(字母o和数字0):没有优化

       -O1:-O1位缺省值

       -O2:二级优化 

       -O3:*优化 
级别越大优化越好,但编译时间边长。

18、-g:在编译的时候假如debug调试信息,用于gdb调试

19、-share:此选项尽量的使用动态库,所以生成文件比较小,但是必须是系统有动态库。

20、-shared:生成共享目标文件,通常用在建立共享库。

21、-static:链接时使用静态链接,但是要保证系统中有静态库。

22、-w:不生成任何警告信息

22、-Wall:生成所有警告信息