116
社区成员




linux系统是为了给开发者减轻负担,许多必要的步骤系统都帮您做了,给您提供了许多实用工具。
编译是为了让您的代码能够在机器上运行,机器只能识别二进制代码。
预处理是为编译做准备,头文件、宏定义、条件编译的展开,形成一个个完整的文件。
编译是为了生成指令(也有非指令)文件,机器有一套指令集。
汇编过程将上一步的汇编代码转换成机器码,为每一个源文件产生一个目标文件。终于转换成机器能直接识别的内容了。
链接过程将多个目标文件以及所需的库文件(.sodeng)链接成最终的可执行文件
总的来说,还是挺复杂的,你需要知道具体的每一个文件是怎么来的,熟悉各个阶段的命令以及命令的参数,这是具备挑战性的,然而,使用起来不用管具体的过程。抓住一个个C文件可以更好的理清编译过程,C文件经过预处理变成了i文件,i文件经过编译变成了s文件,s文件经过汇编变成了o文件,o文件经过链接变成了out文件。编译过程是一些步骤,任何一个步骤出错都能导致编译失败。
写程序是为了玩,玩这个机器,利用机器来干些你不想干的事。但是机器就像一个孩子,有自己的思想,你需要教它干事。
多个文件的程序是为了实现多种功能,你想使用这个功能就使用相应文件,你不想使用留着备用也行。
总结,虽然学了C语言的一些知识,但是对编程机制了解得并不很多,现在对编程机制有了一点点的了解,知道编译器帮我们做了许多工作,实际上编译器是编程过程中必不可少的工具。