编译器生成的文件通常是可执行文件,时间不定,地点不定,具体数字不定。
记得有一次,我在大学里教编程的时候,有个学生问我:“老师,编译器到底生成什么文件啊?”我看着他,笑了笑,说:“,这事儿得从一个小例子说起。”
那时候,我随手打开了一个简单的C语言程序,输入命令“gcc -o 程序名 源文件名.c”。编译器“咕噜咕噜”地转了一会儿,然后屏幕上出现了“程序名”的可执行文件。我打开终端,输入“./程序名”,嘿,程序真的运行了!
你看,编译器就像是个魔术师,它把写好的代码(比如.c文件)变成了电脑能直接执行的文件(比如.out文件)。不过,这还不是全部。编译器还会生成一些其他文件,比如汇编代码(.s文件)和符号表(.sym文件)。
等等,还有个事,我突然想到,那汇编代码又是啥呢?它就像是编译器把高级语言翻译成电脑能理解的低级语言的过程。就像我们读书的时候,先看懂了文字,再理解其中的道理。
不过,话说回来,编译器到底生成哪些文件,还是得看具体的编译器和编译选项。有时候,它还会生成一些调试信息文件,方便我们调试程序呢。
嘿,记得那年夏天,我在大学实验室里,熬了两个通宵,写了个小项目。项目终于编译通过了,我一看,C盘里多了一个叫a.out的文件。那是我第一次意识到,编译器不只是把代码转成机器码那么简单,它还生成了可以执行的东西。那是个小项目,只有几千行代码,编译时间也就几秒。现在想想,编译器可真是个神奇的工具体验,它到底生成什么文件呢?等等,还有个事,我突然想到,那文件的大小,会不会和代码的复杂度有关?