【问题标题】:What is the difference between a linker and a makefile?链接器和生成文件有什么区别?
【发布时间】:2011-03-05 15:57:15
【问题描述】:

链接器接收 obj 和 lib 以创建 exe 或其他 lib。但是makefile也是如此(但它可以从源代码开始)。两者有什么区别?

【问题讨论】:

    标签: build linker makefile


    【解决方案1】:

    不,Makefile 没有。

    Makefile 本质上是一个脚本,用于告诉 make 程序将哪些文件作为构建文件的一部分发送给哪些程序。

    因此,Makefile 可以使用适当的源文件/目标文件调用编译器、链接器等,但它本身并不真正完成这项工作。

    我认为你错过了 Makefile 的整个概念,所以我建议你做一些further reading

    【讨论】:

      【解决方案2】:

      链接器和生成文件几乎没有任何共同之处。 makefile 是make 使用的一组指令。它们可以是构建程序、安装某些文件或任何您想让make 执行的指令。链接器是将目标文件作为输入并将它们组合成输出可执行文件(或共享库)的程序。

      【讨论】:

        【解决方案3】:

        makefile 只是某种规则集,它定义了需要编译什么以及哪个编译过程取决于什么。这样,make 软件可以自动执行该过程。

        但是,使用 make 和 makefile 并不意味着您没有使用常规的编译器和链接器。所以基本上这些还是会运行的,你只是不需要自己运行它,而是在makefile中定义之前的过程。

        【讨论】:

          【解决方案4】:

          Make 使用一个 makefile 来评估一组关于是否在源文件上调用编译器的规则(由于它很可能会发生变化)并最终调用链接器来创建最终的目标文件。

          您可以在此处阅读有关 make 的更多信息:http://www.gnu.org/software/make/

          【讨论】:

            猜你喜欢
            • 2020-01-28
            • 2011-04-19
            • 2013-06-17
            • 2011-08-26
            • 2010-11-04
            • 2010-10-19
            • 2014-11-26
            • 2019-10-25
            • 2018-07-08
            相关资源
            最近更新 更多