0
点赞
收藏
分享

微信扫一扫

gcc 简介


一、gcc简介

gcc与g++,当程序中出现using namespace std等带有c++特性的语句时,如果用gcc编译时,必须显式地指明这个程序要用c++编译库编译,而g++可以直接编译。

二、gcc支持的文件

.c,c语言的源程序

.C, c++的源程序

.cc,c++的源程序

.cxx, c++的源程序

.m, Objective c的源程序

.i, 经过预处理的c源程序

.ii, 经过预处理的c++源程序

.s, 汇编语言的源程序

.S, 汇编语言的源程序

.h, 头文件

.o, 目标文件

.a, 存档文件

三、gcc是高效的编译器

#include<stdio.h>intmain(){
printf("Hello World!\n");
return0;
}



g++ 编译该段代码后,大小为:4.6K

tc++3 编译该段代码后,大小为:7.8K

bc45编译该段代码后,大小为:53.8k

vc6编译该段代码后,大小为:184k

四、编译过程

1、用gcc编译程序时,分为四个阶段:

(1)预处理(pre-processing)

(2)编译(compiling)

(3)汇编(assembling)

(4)链接(lingking)

2、分步编译源程序

(1)预处理

gcc -E hello.c -o hello.i

(2)编译

gcc -S hello.c -o hello.s

(3)汇编

gcc -c hello.c -o hello.o

(4)链接

gcc hello.c -o hello

五、gcc的常用选项

(1)-c

通知gcc取消链接步骤,即编译源码并在最后生成目标文件

(2) -Dmacro

定义指定的宏,使它能够通过源码中的#ifdef进行检验

(3)-LDIRNAME

将DIRNAME加入到库文件搜索的路径中

(4)-g

在可执行文件中包含标准调试信息

(5)-IDIRNAME

将DIRNAME加入到头文件搜索的路径中

(6)-llibrary

提示链接程序在创建最终可执行文件时包含指定的库

(7)-o,-o2,-o3

将优化状态打开,该选项不能与-选项联合使用

(8)-S

要求编译程序生成来自源代码的汇编程序输出

(9)-wall

启动所有饿警报

(10)-E

仅执行预处理

(11)-Werror

在发送警报时取消编译操作,即将警报看做是错误

(12)-w

禁止所有的警报

(13)-static

对库文件进行静态链接

(14)-ggdb

在可执行文件中包含只有gdb才能识别的大量调试信息

(15)-ansi

支持ansi/iso语法标准,取消gnu所有与ansi冲突的语法扩展

(16)--pedantic

尽可能显示ansi/iso c标准列出的所有警告

(17)--pedantic-errors

尽可能显示ansi/iso c标准列出的所有错误

举报

相关推荐

0 条评论