linux下用gcc如何生成预处理、汇编等文件
【gcc -E test.c -o test.i------>预处理文件生成.i 文件。】
- 1、c语言程序生成过程
- C语言程序的生成过程可以简单的分为:编辑、预处理、编译、汇编、链接五个阶断。
- 下面所有的操作以hello world程序为例,源码文件命名为t.c,源码内容如下:
- #include <stdio.h>
- int main()
- {
- printf("hello world\n");
- return 0;
- }
步骤阅读
- 2
2、预处理阶断
预处理阶断是对c源码中的预处理代码进行处理。
gcc -E -o t.i t.c
步骤阅读
- 3
3、编译阶断
编译阶断是将c源码处理为汇编代码。
gcc -S -o t.s t.i
或者
gcc -S -o t.s t.c
步骤阅读
- 4
4、汇编阶断
汇编阶断是将汇编代码处理为二进制代码。
gcc -c -o t.o t.s
或者
gcc -c -o t.o t.c
步骤阅读
- 5
5、链接阶断
链接阶断将二进制代码打包成一个操作系统可以识别的可执行文件格式,linux是elf格式,windows上是pe格式。
gcc -o t t.o
或者
gcc -o t t.c
步骤阅读
- 6
- 6、运行阶断
- 运行阶断,有操作系统的可执行文件加载器负责加载并执行程序。
- ./t
转载于:https://www.cnblogs.com/dpf-learn/p/6127750.html
linux下用gcc如何生成预处理、汇编等文件相关推荐
- Linux下利用protoc命令生成protobuf的头文件和源文件,根据mesType.proto文件
Linux下利用protoc命令生成protobuf的头文件和源文件,根据mesType.proto文件 protobuf的message文件为 msgType.proto 生成c++头文件和源文件的 ...
- linux下g编译文件或目录,【转】在linux下使用gcc/g++编译多个.h文件
博主写得很好 多个文件编译在linux下编译,下面有三个文件,分别是1.cpp 和 2.cpp 和myhead.h 文件. 1.cpp 2.cpp myhead.h 假如他们都在一个目录下面,那么编译 ...
- 在Linux下gcc缺省编译,在Linux下用gcc编译hello world
1. 确保Linux系统里已经装好了gcc 测试:输入gcc后是如下的结果就说明已经安装成功 2. 创建HelloWorld.c 使用 touch 创建一个空文件; 用vim编辑 按下A或者I 插入 ...
- g 最新编译器linux,Linux下安装gcc 、g++ 、gfortran编译器
一.ubuntu下gcc/g++/gfortran的安装 1.安装 (1).gcc ubuntu下自带gcc编译器.可以通过"gcc -v"命令来查看是否安装. (2).g++ 安 ...
- vss2010c语言怎么运行,在Linux下使用gcc运行C语言程序
Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具.本教程毫不犹豫地使用GCC来编译C程序. ...
- Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用
首先先说一下Linux吧因为这也是博主最早接触的编程开发环境所以比较熟悉的! Linux下就说GCC GCC编译如果不指定编译选项的话是一步到位没有额外的后缀名文件! .i文件:.i文件是GCC -E ...
- Linux环境下静态库的生成和使用 (.a文件)
这一阵子的工作用到了linux,也用到了linux的静态库和动态库.正好对这一块儿一直不明白,趁此机会学习了一下.以下是笔记.先说一说linux下静态库的生成和使用方法. An archive (or ...
- java调用c 生成so,Java在linux下调用C/C++生成的so文件
Java在linux下调用C/C++生成的so文件 1. CplusUtil.java是java web工程中的一个工具类 内容如下: CplusUtil.java package cn.undone ...
- linux怎么运行gcc,在Linux下使用gcc运行C语言程序
标签:终端 工具 gcc 程序 分区 编译 mod 没有 保存 Linux下使用最广泛的C/C 编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是 ...
最新文章
- 浅谈Disruptor
- 深度学习“四大名著”发布!Python、TensorFlow、机器学习、深度学习四件套(附免费下载)...
- Mysql数据库“Communications link failure due to underlying exception”问题
- Visual Studio解决freopen等函数报错函数安全问题
- gj2 python中一切皆对象
- Exceptionless服务端+kibana部署实时日志纪要
- 自定义日历控android,Android自定义日历Calender代码实现
- in use 大学英语4word_匈牙利留学 | 名校篇:罗兰大学2021英文授课项目最新招生信息...
- model Ensemble
- 阿里这份Java程序性能优化指南,让你的程序快上200%
- 【附详细材料清单】一种不需要额外加工零件的板球结构(可修改后用于电赛板球结构)
- 【机器学习】(5.4)聚类--密度聚类(DBSCAN、MDCA)
- 控制系统状态空间表达式的解(1)——求解线性定常系统零输入响应
- elastichd的使用教程_ElasticHD
- 金山的 wifi共享android手机怎莫共享台式机3g无线网络,巧妙开启笔记本WiFi共享 手机上网有神助...
- 贝壳DMP平台建设实践
- 姜小白的Python日记Day5 字符串与字典
- 前端---js中onmouseover和onmouseout事件
- C语言 编一程序,从键盘输入一个实数,输出其绝对值。
- fiddler连接IOS、Android、winphone,以及常见失败解决方法