【发布时间】:2011-03-05 15:57:15
【问题描述】:
链接器接收 obj 和 lib 以创建 exe 或其他 lib。但是makefile也是如此(但它可以从源代码开始)。两者有什么区别?
【问题讨论】:
链接器接收 obj 和 lib 以创建 exe 或其他 lib。但是makefile也是如此(但它可以从源代码开始)。两者有什么区别?
【问题讨论】:
不,Makefile 没有。
Makefile 本质上是一个脚本,用于告诉 make 程序将哪些文件作为构建文件的一部分发送给哪些程序。
因此,Makefile 可以使用适当的源文件/目标文件调用编译器、链接器等,但它本身并不真正完成这项工作。
我认为你错过了 Makefile 的整个概念,所以我建议你做一些further reading。
【讨论】:
链接器和生成文件几乎没有任何共同之处。 makefile 是make 使用的一组指令。它们可以是构建程序、安装某些文件或任何您想让make 执行的指令。链接器是将目标文件作为输入并将它们组合成输出可执行文件(或共享库)的程序。
【讨论】:
makefile 只是某种规则集,它定义了需要编译什么以及哪个编译过程取决于什么。这样,make 软件可以自动执行该过程。
但是,使用 make 和 makefile 并不意味着您没有使用常规的编译器和链接器。所以基本上这些还是会运行的,你只是不需要自己运行它,而是在makefile中定义之前的过程。
【讨论】:
Make 使用一个 makefile 来评估一组关于是否在源文件上调用编译器的规则(由于它很可能会发生变化)并最终调用链接器来创建最终的目标文件。
您可以在此处阅读有关 make 的更多信息:http://www.gnu.org/software/make/
【讨论】: