博客
关于我
Linux中的C语言程序编译过程
阅读量:274 次
发布时间:2019-03-03

本文共 747 字,大约阅读时间需要 2 分钟。

文章目录

GCC命令

GCC 原名为 GNU C 语言编译器,因为它原本只能处理C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件。

更多的,为了快捷简单,用下条命令直接编译C语言程序

gcc demo.c -o demo       //包含了编译过程中的预处理,编译,汇编和链接四个阶段

含义:用 gcc 编译 demo.c,并生成一个二进制文件 demo。 其中 –o 的意义是 output,指明要生成的文件的名称,如果不写 –o demo ,则默认生成 a.out 文件(Linux下.out后缀的是可执行文件,相当于windows下的.exe文件)。完成了从 C 源程序到 ELF 格式(Linux 系统下的可执行文件的格式)的全部步骤,生成的文件 demo是一个可以直接运行的二进制文件

gcc命令下各选项的含义

-E:仅作预处理,不进行编译、汇编和链接

-S:仅编译到汇编语言,不进行汇编和链接
-c:编译、汇编到目标代码(也就是计算机可识别的二进制)
-o:执行命令后文件的命名
-g:生成调试信息
-w:不生成任何警告
-Wall:生成所有的警告

以下是进行编译的过程

创建测试文件

touch demo.c

预处理

gcc -E demo.c -o demo.i//生成预处理文件

编译

gcc -S demo.i -o demo.s//生成汇编源代码文件

汇编

gcc -c demo.s -o demo.o//生成汇编代码文件

链接

gcc demo.o -o demo//生成可执行文件

图示过程

在这里插入图片描述

转载地址:http://zhcl.baihongyu.com/

你可能感兴趣的文章
Linux 中国徽标征集活动结果 | Linux 中国
查看>>
NVIDIA 的云游戏服务 GeForce NOW 无耻地忽略了Linux | Linux 中国
查看>>
黑吃黑——黑客组织通过黑客工具攻击其他黑客 | 每日安全资讯
查看>>
在 Python 调试过程中设置不中断的断点 | Linux 中国
查看>>
AI 系统向自动化编码迈进 | Linux 中国
查看>>
使用 Jupyter Notebooks 构建一个远程管理控制台 | Linux 中国
查看>>
使用开源可视化工具来理解你的 Python 代码 | Linux 中国
查看>>
【2021 ECUG Con】聚势而来,与你相约花开时
查看>>
硬核观察 | 有人在比特币骗局中损失了 10 个比特币
查看>>
在 Ubuntu 17.10 上安装 AWFFull Web 服务器日志分析应用程序 | Linux 中国
查看>>
FreeDOS 的简单介绍 | Linux 中国
查看>>
查看一个归档或压缩文件的内容而无需解压它 | Linux 中国
查看>>
极致技术探索:显卡工作原理 | Linux 中国
查看>>
如何在 Ubuntu 系统中添加一个辅助 IP 地址 | Linux 中国
查看>>
LCTT 2018:五周年纪念日 | Linux 中国
查看>>
如何在 Ubuntu 16.04 强制 APT 包管理器使用 IPv4 | Linux 中国
查看>>
使用 top 命令了解 Fedora 的内存使用情况 | Linux 中国
查看>>
怎样解决 “sub process usr bin dpkg returned an error code 1” 错误
查看>>
Bat:一种具有语法高亮和 Git 集成的 Cat 类命令 | Linux 中国
查看>>
Termtosvg:将你在 Linux 终端中操作录制成 SVG 动画 | Linux 中国
查看>>