许多初学者都有比较大的疑惑,电脑是怎么识别我们写的代码并进行处理的呢?其实这个问题对我们初学者来说是很重要的,只有了解机器的运行原理,我们才能真正地学号留下。那么今天我就以此为题为大家略讲一二,有错误的地方希望大家多多指教。
一般来说我们编译一个程序都是直接通过gedit project.c编辑代码,然后通过gcc project.c编译代码,最后通过./a.out执行,但是今天我们将其分解为四个步骤:
分析编译的过程 ----> 获得机器码
1、预处理: gcc -E project.c -o project.i //生成预处理文件 project.i 宏展开 包含展开
2、编译: gcc -S project.i -o project.S //生成汇编文件 project.S //高级语言转成低级语言
3、汇编: gcc -c project.S -o project.o //生成机器语言 project.o 生成未地址定位的机器码
4、链接: gcc project.o -o project //生成可运行程序project 加载库文件
1、预处理: gcc -E project.c -o project.i //生成预处理文件 project.i 宏展开 包含展开 -o后面要跟着生成的文件。
此过程将头文件里的定义如stdio.h里的例如extern int sys_nerr;等定义全部展开添加到mian函数里面,pri