GCC参数介绍

27 篇文章 2 订阅

gcc参数介绍

-x language filename
设定文件所使用的语言,而不是以后缀识别语言

-x none filename
关掉上个选项的语言设置,使用文件的后缀识别语言

-c
对文件进行预处理、编译和汇编,生成obj文件

gcc -c hello.c

-C
在预处理的时候,不删除注释信息,一般用于分析程序

-S
只进行预处理和编译,生成汇编代码

gcc -S hello.c

-E
只进行预处理,这个选项不生成文件,可以使用重定向或者-o选项使其生成一个文件

gcc -E hello.c -o hello.i

-o
制定目标的名称,默认为a.out

gcc -o hello hello.c

-ansi
关闭gnu c中与ansi c不兼容的特性,激活ansi c的专有特性

-include file
包含某个代码,相当于在代码中使用#include

gcc hello.c -include /usr/lib/hello.h

-imacros file
将file中的宏加入到输入文件中

-Dmarco
相当于#define macro

-Dmarco=defn
相当于#define macro=defn

-Umacro
相当于#undef macro

-Idir
对于#include“filename",gcc/g++会先在当前目录查找头文件,如果没有找到则回到默认的头文件目录找。如果使用了-Idir选项,则会现在dir目查找,再按常规的顺序去找。
对于#include<filename>,使用-Idir选项,gcc/g++会到dir目录下查找,然后再到系统默认的头文件目录查找。

-I-
取消-Idir选项

-idirafter dir
在-I选项指定的目录里面查找失败,则到这个目录下查找

-iprefix prefix、-iwithprefix dir
一般一起使用,在-I选项指定的目录里面查找失败,则到prefix+dir下查找

-nostdinc
使编译器不在系统默认的头文件目录里面找文件,一般和-Idir选项一起使用

-nostdin c++
规定不再g++指定的标准路径中搜索

-M
生成文件关联的信息

-MM
生成文件关联信息,但是忽略#include造成的依赖关系

-MD
同-M,同时将结果输出到后缀为.d的文件里

-MMD
同-MM,同时将结果输出到后缀为.d的文件里

-llibaray
制定编译时候使用的库

gcc -lpthread hello.c

gcc常用的库有glibc,其中包含了C标准库的实现。几乎所有的C语言都要调用glibc,所以glibc是Linux平台C程序运行的基础。因此-lc是gcc的默认选项。除此以外,libm中包含了一下用于数学计算的函数,libpthread中包含了关于线程的函数。

-Ldir
制定编译的时候,搜索库的路径。不然编译器将只在标准库的目录下查找。

-static
禁止使用动态链接库,编译出来的文件一般很大

-share
尽量使用动态链接库,编译出来的文件一般较小,但运行时依赖动态链接库。

-traditional
试图让编译器支持传统的C语言特性

-O0、O1、-O2、O3
编译器优化选项。-O0为不做任何优化,-O或-O1为默认优化,-O2进一步优化,-O3更进一步优化,包括inline函数。

-w
不生成任何警告信息

-Wall
生成所有警告信息


关于gcc和g++

GCC可同时用来编译C程序和C++程序。gcc命令只能编译C++源文件,而不能自动和C++程序使用的库连接。因此,通常使用g++命令来完成C++程序的编译和连接,该程序会自动调用gcc实现编译。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值