【Linux】编译的四个步骤
创始人
2024-04-30 12:30:49
0

目录

平常的使用:

安装软件

编写:vi/vim vscode

编译

执行 路径/文件名

计算机五大部件

编译四步

1.预编译(处理#)

2.编译(查错,代码到汇编)

3.汇编(汇编到二进制指令)

4.链接


平常的使用:

安装软件

ubuntu apt install xxx

红帽子 yum install xxx

编写:vi/vim vscode

main.c ->main.exe/main

c语言的源程序后缀必须是.c,硬盘上存放,计算机不能直接执行

编译

转换为二进制可执行程序.exe

执行 路径/文件名

如果文件在bin下就不用加路径

Linux和windows可执行程序的格式不一样,所以不能移植程序

Linux ELF格式

WIN  PE格式

/bin存放命令/可执行程序

计算机五大部件

运算器、控制器、存储器(内存)、输入设备i、输出设备o

三种总线:数据/地址/控制

电脑只认识01

汇编注记符无法解决跨平台的问题

高级语言可以

程序编译就是将高级语言转换成汇编注记符然后转换成01

编译四步

程序编译分为四步:1.预编译(Prepressing)2.编译(Compilation)3.汇编(Assembly)4.链接(Lunking)

1.预编译(处理#)

.cpp->.i

gcc -E main.c -o hello.i

处理#和//

2.编译(查错,代码到汇编)

.i->.s

gcc -S main.i -o main.s

语法检查:词法分析、语法分析、优化后生产相应的汇编代码文件

3.汇编(汇编到二进制指令)

.s->.o

gcc -c main.s -o mian.o

将汇编代码转变成机器可以执行的命令

4.链接

将一大堆本身就有的文件(printf这些别人的代码)链接起来

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...