gcc参数

GCC 参数详细介绍

gcc是gnu compiler collection 的简称,他包含了多种语言的编译器,如C, C++,Objective-C, Objective-C++, Java, Fortran和Ada。但每种编译器的名字不一样,gcc andg++ 分别是 gnu 的 c & c++ 编译器

gcc/g++ 在执行编译工作的时候,总共需要 4 步

1. 预处理, 生成 .i 的文件 [ 调用预处理器 cpp]

2. 将预处理后的文件转换成汇编语言 , 生成文件 .s[ 调用编译器 gcc/egcs]

3. 有汇编变为目标代码 ( 机器代码 ) 生成 .o 的文件 [ 调用汇编器 as]

4. 连接目标代码 , 生成可执行程序 [ 调用链接器 ld]

常见的gcc参数介绍

-x language filename

   设定文件所使用的语言 , 使后缀名无效 , 对以后的多个有效 . 也就是根

   据约定 C 语言的后缀名称是 .c 的,而 C++ 的后缀名是 .C 或者 .cpp, 如果

   你很个性,决定你的 C 代码文件的后缀名是 .pig 哈哈,那你就要用这

   个参数 , 这个参数对他后面的文件名都起作用,除非到了下一个参数

   的使用。

   可以使用的参数吗有下面的这些

     `c', `objective-c', `c-header', `c++', `cpp-output',

     `assembler', and `assembler-with-cpp'.

   看到英文,应该可以理解的。

   例子用法 :

   gcc -x c hello.pig

-x none filename

  关掉上一个选项,也就是让 gcc 根据文件名后缀,自动识别文件类型

  例子用法 :

   gcc -x c hello.pig -x none hello2.c   

-c

  只激活预处理 , 编译 , 和汇编 , 也就是他只把程序做成 obj 文件

  例子用法 :

   gcc -c hello.c

  他将生成 .o 的 obj 文件

-S

  只激活预处理和编译,就是指把文件编译成为汇编代码。

  例子用法

   gcc -S hello.c

  他将生成 .s 的汇编代码,你可以用文本编辑器察看

-E

  只激活预处理 , 这个不生成文件 , 你需要把它重定向到一个输出文件里

  面 .

  例子用法 :

   gcc -E hello.c > pianoapan.txt

   gcc -E hello.c | more

  慢慢看吧 , 一个 hello word 也要与处理成 800 行的代码

-o

  制定目标名称 , 缺省的时候 ,gcc 编译出来的文件是 a.out, 很难听 , 如果

  你和我有同感,改掉它 , 哈哈

  例子用法

   gcc -o hello.exe hello.c ( 哦 ,windows 用习惯了 )

   gcc -o hello.asm -S hello.c

-pipe

  使用管道代替编译中临时文件 , 在使用非 gnu 汇编工具的时候 , 可能有些问

  题

   gcc -pipe -o hello.exe hello.c

-ansi

  关闭 gnu c 中与 ansi c 不兼容的特性 , 激活 ansi c 的专有特性 ( 包括禁止一

  些 asm inline typeof 关键字 , 以及 UNIX,vax 等预处理宏 ,

-std c99

    表示编译器支持c99标准,主要有c89,c99,gnu89,gnu99,已经c++部分的c++98, c++0x, gnu++98,gnu++0x

-rdynamic

    通知链接器将所有符合添加到动态符号表中去

-lxx

   表示动态加载libxx.so库

-Lxx

   表示增加目录xx,让编译器可以在xx下寻找库文件

-Ixx

  表示增加目录xx,让编译器可以在xx下寻找头文件

优化选项

-o FILE

   生成指定的输出文件。用在生成可执行文件时。

-O0

   不进行优化处理。

-O 或 -O1

   优化生成代码。

-O2

   进一步优化。

-O3

    比 -O2更进一步优化,包括 inline 函数。

-shared

   生成共享目标文件。通常用在建立共享库时。

-static

   禁止使用共享连接。

-w

   不生成任何警告信息。

-Wall

   生成所有警告信息。一下是具体的选项,可以单独使用

‘-Wcomment’  This option warns about nestedcomments.

‘-Wformat’   This option warnsabout the incorrect use of format strings in functions

              such as printf and scanf, where the format specifier does not agreewith the  

              type of the corresponding function argument.

‘-Wunused’   This option warnsabout unused variables.

‘-Wimplicit’ This option warns about any functions that are usedwithout being declared.

‘-Wreturn-type’ This option warns about functions that

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值