gcc 简介
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一、gcc简介
gcc与g++当程序中出现using namespace std等带有c++特性的语句时如果用gcc编译时必须显式地指明这个程序要用c++编译库编译而g++可以直接编译。
二、gcc支持的文件
.cc语言的源程序
.C, c++的源程序
.ccc++的源程序
.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标准列出的所有错误