GCC命令选项(整理)

由于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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值