首页 > 其他分享 >gcc 简介

gcc 简介

时间:2023-02-06 11:04:39浏览次数:54  
标签:gcc ansi 简介 c++ 源程序 编译 hello


一、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标准列出的所有错误

标签:gcc,ansi,简介,c++,源程序,编译,hello
From: https://blog.51cto.com/u_15903730/6038741

相关文章

  • Node.JS npm简介
    视频npm的命令npm-v查看npm的版本npmversion查看所有模块的版本npmsearch包名搜索包npminstall/i包名安装包npmremove/r包名删除包npminsta......
  • Node.JS包简介(讲解了json文件怎么看)
    视频json文件不能写注释......
  • ChIP-seq 分析:教程简介(1)
    简介本课程介绍Bioconductor中的ChIPseq分析。该课程由4个部分组成。这将引导您完成正常ChIPseq分析工作流程的每个步骤。它涵盖比对、QC、peakcalling、基因组......
  • ES6 简介(二)
    目录ES6简介(二)五、函数扩展1、函数参数默认值1.1基本用法1.2与解构赋值默认值结合使用1.3指定参数的必要性2、rest参数3、name属性4、箭头函数六、模块化1、......
  • 日常学习(6)gcc编译选项
    gcc编译选项-nostartfiles连接的时候不使用标准系统的启动文件。-nodefaultlibs连接的使用不使用标准系统库。-nostdlib链接的时候不使用标准的系统启动文件和系统库......
  • Linux系列教程(一)——Linux系统简介
    本系列教程将完整的讲解整个Linux相关的知识,这是楼主学完兄弟连的Linux教程之后重新对Linux知识体系的整理。个人感觉兄弟连的Linux教程可以很好的入门,从最基础的知识开......
  • flutter开发之appBar简介
    appBar的简介AppBar在APP上的上方(如果有)显示工具栏小部件、前导、标题和操作。而APP的底部通常用于TabBar。appBar的位置图说明下图显示了当书写语言从左到右(例如英语)时......
  • python基础:算法简介之二分法(需要写的出来)、三元表达式、各种生成式、匿名函数、常见内
    目录一、算法简介之二分法(需要写的出来)简介什么是算法二分法二、三元表达式什么是三元表本质?三元表达式语法结构三、各种生成式列表生成式字典生成式集合生成式元组生成器(......
  • python基础:global和nonlocal方法、函数名的多种用法、闭包函数、装饰器简介、装饰期推
    目录一、global和nonlocal方法global方法nonlocal方法二、函数名的多种用法1、函数名可以当作变量名赋值2、函数名可以当作函数的参数3、函数名可以当作函数的返回值4、函......
  • QMainWindow简介
        QMainWindow是带有菜单栏、工具栏、状态栏的主窗口类,它有自己单独的布局。布局有一个中心区域,通常是标准的Qt部件,也可以是定制部件,且必须有一个中心小部件。set......