一个链接器接收obj和lib文件,以创建exe或其他lib文件。但是,makefile也可以做到这一点(但它可以从源代码开始)。那么两者之间有什么区别呢?
链接器和makefile几乎没有任何共同点。Makefile是make
使用的一组指令。它们可以是构建程序、安装文件或任何你想让make
执行的指令。链接器是一个程序,它将目标文件作为输入,并将它们合并成输出可执行文件(或共享库)。
一个makefile就是一种规则集,定义了需要编译的内容以及编译过程中的依赖关系。这样,make软件可以自动化这个过程。
使用make和makefile并不意味着您不再使用常规的编译器和链接器。基本上,它们仍然会运行,只是您不需要自己运行它们,而是在makefile中定义这个过程。
Make使用一个makefile来评估一组规则,以确定是否应调用编译器对源文件进行编译(由于其发生变化的可能性较大),并最终调用链接器来创建最终的目标文件。
您可以在这里了解更多关于make的信息:http://www.gnu.org/software/make/