gcc识别的文件的扩展名如下:
.c c语言程序。
.i c语言预处理后的文件。
.C .cc. cpp. cp c++程序。
.ii c++预处理后的程序。
.S 汇编文件
.s 预处理后的汇编文件。
.o 编译后的目标文件。
.a 目标文件的静态链接库、
.so 目标文件的动态链接库。
gcc ,g++编译选项。
-o file 指定生成输出的文件名。
-E 只进行预处理
-S 只进行预处理和编译
-c 只进行预处理和编译和汇编,不链接。
-Wall 打印所有的警告。
-w 关闭所有的警告。
-0[0-3] 编译器优化级别,0表示不优化。
-include file 插入一个文件。等同于源程序中的#include
-Dmacro[=def] 将名为marco的宏定义为def,若def忽略不写,则marco=1
-Umacro 取消宏定义。
-v 显示gcc工具的配置命令,预处理器和编译器的版本号。
-ldir 将dir目录加入头文件搜索目录列表,优先在dir目录中包含的头文件。
-Ldir 将dir目录加入库文件目录列表,优先在dir目录中查找库文件。
-lname 链接库为name的库
-static 链接时使用静态库
-shared 链接时使用动态库
-g 在可执行文件中加入标准调试信息。
gcc举例: gcc -E hello.c -o hello.i
gcc -S hello.i -o hello.s
gcc -c hello.s -o hello.o
gcc hello.o -o hello_elf
等同于: gcc hello.c -o hello_elf