首页 > 其他 > 详细

跟我一起写Makefile—(1)概述与程序的编译与链接

时间:2021-03-30 20:51:03      阅读:26      评论:0      收藏:0      [点我收藏+]

概述概述与程序的编译与链接

“Makefile”,简单的说,是用来进行自动化编译指令的一个命令工具。

在Linux系统中,进行C代码的编写与在WIN系统中IDE的编写不同。IDE具有模块化的编程,这些过程IDE都自动化的给你完成了,代码完成之后只需要编译之后就变成了可执行文件,即使是修改的文件中某块代码或某句代码,对整个代码块都丝毫没有影响。但在Linux系统中的命令行下写出的C代码,包括了编译->链接这个过程(IDE自动完成这个过程)。无论是何种语言,例如C,C++,我们写好的代码称为源代码,整合之后称为源文件,将源文件编译成中间代码文件,一般被编译成汇编代码,也就是从高级语言编译成机器语言,甚至是0或1。类似的文件后缀:WIN下如.obj文件,linux下如.o(Object)文件,这个动作流程称为“编译”(compile).

编译之后,有了机器可以认识的代码,我们就可以通过代码,用编译好的中间代码文件结合硬件来生成可执行的文件。这一过程称为"链接"(Link).

总结一下,源文件首先会生成中间目标文件,再由中间目标文件生成执行文件。在编译时,编译器只检测程序语法,和函数、变量是否被声明。如果函数未被声明,编译器会给出一个警告,但可以生成 Object File。而在链接程序时,链接器会在所有的 Object File 中找寻函数的实现,如果找不到,那到就会报链接错误码(Linker Error),在 VC 下,这种错误一般是:Link 2001 错误,意思说是说,链接器未能找到函数的实现。你需要指定函数的Object File.

跟我一起写Makefile—(1)概述与程序的编译与链接

原文:https://www.cnblogs.com/Mark0227/p/14597433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!