gcc编译系统
来源:互联网 发布:类似origin的软件 编辑:程序博客网 时间:2024/05/21 14:45
一、文件名后缀
常用文件名后缀及其表示的文件类型如下表:
二、程序的编译过程
1.预处理
在这一阶段,源码中的所有预处理语句得到处理。
例如:
#include
语句所包含的文件内容替换掉语句本身所有已定义的宏被展开
根据#ifdef,#if等语句的条件是否成立取舍相应的部分
预处理之后源码中不再包含任何预处理语句。
GCC预处理阶段可以生成.i的文件,通过选项-E可以使编译器在预处理结束时就停止编译。
例如:
gcc -E -o hello.i hello.c
2. 编译
这一阶段,编译器对源码进行词法分析、语法分析、优化等操作,最后生成汇编代码。这是整个过程中最重要的一步,因此也常把整个过程称为编译。
可以通过选项-S使GCC在进行完编译后停止,生成.s的汇编程序。
例如:
gcc -S -o hello.s hello.c
3. 汇编
这一阶段使用汇编器对汇编代码进行处理,生成机器语言代码,保存在后缀为.o的目标文件中。
当程序由多个代码文件构成时,每个文件都要先完成汇编工作,生成.o目标文件后,才能进入下一步的链接工作。
目标文件已经是最终程序的某一部分了,只是在链接之前还不能执行。可以通过-c选项生成目标文件。
例如:
gcc -c -o hello.o hello.c
4. 链接
经过汇编以后的机器代码还不能直接运行。为了使操作系统能够正确加载可执行文件,文件中必须包含固定格式的信息头,还必须与系统提供的启动代码链接起来才能正常运行,这些工作都是由链接器来完成的。
例如:
gcc -o hello hello.c
三、gcc的基本用法
gcc [-Wall] [-O1..3] [-g] [-o name] file…
-Wall: 打开所有警告项
-O: 设置优化级别,O0表示关闭优化功能
-g: 将调试信息编译到目标文件中
-o name: 指定输出文件的名称是name
file: 被编译(链接)的文件
使用举例:
四、gcc命令行选项
按照选项作用所对应的编译阶段,可将gcc的选项分为四组:
预处理选项、编译选项、优化选项和连接选项。
1.预处理选项
2.编译选项
3.优化选项
优化分为对中间代码的优化和针对目标码生成的优化。
4.连接选项
- gcc编译系统
- gcc编译系统
- 编译系统GCC
- Linux系统gcc编译指令
- Linux系统GCC常用命令和GCC编译过程描述
- Linux系统相关-----gcc编译参数
- GCC编译系统基本过程详解
- gcc编译
- GCC编译
- 编译GCC
- GCC编译
- gcc编译
- GCC编译
- gcc编译
- gcc编译
- gcc 编译
- 编译GCC
- gcc编译
- MyBatis 知识概览
- MWeb 专业的Markdown写作、记笔记、静态博客生成软件
- HTML学习笔记
- RDS SQL Server
- 何时使用copy,strong,weak,assign关键字 定义属性
- gcc编译系统
- 启动resin报错:Error runningnewResin: Can't find neither 'server' nor 'server-default' nor 'server-multi'
- pandas基础介绍
- lintcode 加一(Plus One )(Java)
- Java门面模式(或外观模式)
- bzoj 3505 数三角形 组合数 解题报告
- RecyclerView瀑布流如何动态计算imageview的宽高
- android 引导页的制作
- SAP审批策略相关表