在shell上通过man gcc命令可以查看manpage文档。
自己根据平时所学分享一些常用的命令使用,请大家批评指正!
1. gcc -E sourceFile.c
-E,只预编译。直接输出预编译结果。
-E参数,进行预编译时,将输出信息,将程序所包含的头文件,函数,宏定义等,进行扩展。
2. gcc -S sourceFile.c
-S,只执行到源代码到汇编代码的转换,输出汇编代码。3. gcc -c source_file.c
-c,只执行到编译,输出目标文件。
汇编知识将在以后的博客推出。
4. gcc -c sourceFile.c -o outputFileName
-o, 指定输出文件名 该参数可以省略。默认下(gcc sourceFile.c):生成名为a.out的可执行文件。-c:生成名为sourceFile.o的目标文件。(进行编译,不链接)
5. gcc -g sourceFile.c
-g,生成供调试用的可执行文件,可以在gdb中运行。用strip命令重新将debug信息清除。这是会发现生成的文件比正常编译的输出小。
这是因为strip把原先正常编译中的一些额外信息(如函数名之类)去除。
6. gcc -s sourceFile.c
-s效果与strip相同。7. gcc -O source_file.c
-O(大写的字母O),编译器对代码进行自动优化编译,输出效率更高的可执行文件。-O 后面还可以跟上数字指定优化级别,如:
gcc -O2 source_file.c
一般可选择2;3会有一定风险。(这里不做演示)
8. gcc -Wall source_file.c
-W,在编译中开启一些额外的警告(warning)信息。-Wall,打开所有的警告信息。9. gcc source_file.c -L/XXX/lib -llibXXX.a -I/XXX/include
-l, 指定所使用到的函数库,链接器将链接名为libxxx.a(后缀.a表示静态库)的函数库。-L,指定函数库所在的文件夹,链接器会搜索/XXX/lib(一般可以指定路径)文件夹。
-I, 指定头文件所在的文件夹,预编译器会搜索/XXX/include文件夹。
10.gcc -D MAX_SIZE=value sourceFile.c
预定义名为MAX_SIZE ,值为value的宏。
若不指定MAX_SIZE的值,默认为1