【Linux】编译的四个步骤

目录

平常的使用:

安装软件

编写: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

处理#和//

【Linux】编译的四个步骤_第1张图片

【Linux】编译的四个步骤_第2张图片

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

.i->.s

gcc -S main.i -o main.s

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

【Linux】编译的四个步骤_第3张图片

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

.s->.o

gcc -c main.s -o mian.o

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

【Linux】编译的四个步骤_第4张图片

4.链接

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

你可能感兴趣的:(Linux,linux,运维,服务器)