由于GCC命令选项太多,以下只列部分常用选项(按A->Z排列):
-ansi 支持ANSI/ISO C的标准语法,取消GNU的语法扩展中与标准有冲突部分(但这一项并不能保证生成ANSI兼容代码)
–b machine 在有的时候,Gcc编译器编译出来的目标代码并不是在运行这个编译动作的机器上运行而是另外一台机器,这种编译叫做交叉编译,用来运行最终目标代码的得机器叫做目标机,machine就是用来指明目标机的类型的
-c 只编译不链接
-DMACRO 以字符串“1”定义 MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义 MACRO 宏。
-E 只运行 C 预编译器。
-fpic 使gcc生成位置无关的代码,这适合安装到一个共享库。
-g 把调试信息加入到可执行的文件里.
-ggdb 在可执行程序中包含GNU debugger(gdb)才能识别的大量调试信息
-Idir 将dir目录加入搜索头文件的目录路径。
–imacros file 同-include file 一样。不过这个文件在具体编译的时候只有里面定义的宏才起作用,所以值用来在file文件里面定义宏。
-include file 在编译之前,把file包含进去,相当于在所有编译的源文件最前面加入了一个#include <file>语句,这样做更“省油”。
-llibrary 链接library库
-Ldir 将dir目录加入搜寻库的目录路径,在没特别指明情况下,gcc将优先于静态库使用共享库
-m486 针对 486 进行代码优化。
-mcpu=type 针对不同的CPU使用相应的CPU命令,可选的type有i386,i486,pentium,i686.
-mieee-fp 使用IEEE标准进行浮点数比较
-MM 输出一个make兼容的相关列表
-mno-ieee-fp 不使用IEEE标准进行浮点数的比较
-mrtd 强行将函数参数个数固定的函数用ret NUM返回,节省调用函数的一条指令
-msoft-float 输出包含浮点库调用的目标代码
-mshort 把int类型作为16位处理,相当于short int
–nostartfiles 在连接的时候不把系统相关的启动代码连接进来。
–nostdlib 在连接的时候不把系统相关的启动文件和系统相关的库连接进来。
–nostdinc 在搜寻include 的文件路径中去掉标准的c语言头文件搜索路径,例如stdio.h文件就是放在标准头文件搜索路径下。
–nostdinc++ 同上,只是去掉的是标准C++语言的头文件搜索路径。
-o 产生的可执行文件指定一个文件名来代替 a.out
-O0 不进行优化处理。
-O 或者-O1 选项告诉 GCC 对源代码进行基本优化
-O2 选项告诉 GCC 产生尽可能小和尽可能快的代码,比O1更进一步
-O3 比 -O2 更进一步优化,包括 inline 函数。
-p 或者 -pg 告诉 GCC 编译 时为 prof 命令建立剖析(profile)信息
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-pedantic-errors 允许发出ANSI/ISO C标准所列出的所有错误
-pipe 编译器编译时各个阶段的信息是保存到临时文件的,如果你不想
用临时文件的话可以通过管道也行.这个命令选项就用上了.不过有些系统不支持.
-S 编译选项告诉 GCC 在为 C 代码产生了汇编语言文件后停止编译
-shared 生成共享目标文件。通常用在建立共享库时。
-static 链接静态库,即执行静态链接默认情况下Gcc只链接共享库
-traditonal 支持Kernighan & Ritchie C语法(如用旧式语法定义函数)
-UMACRO 取消对 MACRO 宏的定义。-v 显示在编译过程的每一步中用到的命令
-w 关闭所有警告
-Wall 允许发出Gcc能提供的所有有用的警告。也可以用-W{warning}来标记指定的警告
-werror 把所有警告转换为错误,以在警告发生时中止编译过程
–Wno-import 禁止对宏#import提出警告
-x none 用后缀识别,关闭语言识别.
====================程序扩展名介绍================================
原始程序码的扩展名指出所用编写程序所用的语言,以及相对应的处
理方法:
.c C 原始程序 ; 预处理、编译、汇编
.C C++ 原始程序 ; 预处理、编译、汇编
.cc C++ 原始程序 ; 预处理、编译、汇编
.cxx C++ 原始程序 ; 预处理、编译、汇编
.m Objective-C 原始程序 ; 预处理、编译、汇编
.i 已经过预处理之 C 原始程序 ; 编译、汇编
.ii 已经过预处理之 C++ 原始程序 ; 编译、汇编
.s 组合语言原始程序 ; 汇编
.S 组合语言原始程序 ; 预处理、汇编
.h 预处理文件(标头文件) ; (不常出现在指令行)
其他扩展名的文件是由连结程序来处理,通常有:
.o Object file
.a Archive file
GCC命令选项(整理)
最新推荐文章于 2022-09-08 14:57:45 发布