Cattle Horse 在 CSAPP深入理解计算机系统-第一章 中发帖
1.计算机系统漫步
为什么要了解编译系统是如何工作的?
优化程序性能
理解链接时出现的错误
避免安全漏洞
HelloWorld 程序的一生简述
[1.计算机系统漫步-20250319131409323]
一个 C 语言程序(例如 hello.c)从编写到执行再到结束的整个生命周期
编译过程:
C 语言是一种高级语言,计算机无法直接理解。为了让计算机能够执行 C 语言程序,必须将其转换为机器语言。这一过程称为编译。
编译过程涉及多个步骤:
预处理(cpp):处理源代码中的预处理指令(如 #include 和 #define)。生成 hello.i 文件
编译(cc1):将预处理后的代码转换为汇编语言。生成 hello.s 文件
汇编(as):将汇编语言转换为机器语言(目标文件)。生成 hello.o 文件
链接(ld):将目标文件与所需的库文件 (如 printf.o) 链接...