gcc识别的文件的扩展名以下:c++
.c c语言程序。工具
.i c语言预处理后的文件。优化
.C .cc. cpp. cp c++程序。调试
.ii c++预处理后的程序。编译器
.S 汇编文件编译
.s 预处理后的汇编文件。gcc
.o 编译后的目标文件。扩展
.a 目标文件的静态连接库、配置
.so 目标文件的动态连接库。file
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