代码之家  ›  专栏  ›  技术社区  ›  Michael Ekoka

值得学习GNU制作吗?

  •  18
  • Michael Ekoka  · 技术社区  · 15 年前

    我最近觉得有必要学习一个构建工具。我正在查看stackoverflow以获取建议,而gnu make几乎没有被提到。相反,我看到了蚂蚁,马文,马卡,烤饼和许多其他的。然而,当我查看我有时必须编译的小“流氓源”(如在回购协议中不一样),它们都需要 make && make install 步骤。

    学习比学习另一种工具对我的时间投入更大吗?

    如果是这样,为什么make仍然那么受欢迎?

    8 回复  |  直到 14 年前
        1
  •  24
  •   DevSolar    14 年前

    制造是 这个 所有C/C++的标准构建工具。其他许多人已经踏上了成功的征程,但即使他们很有用,也没有达到制造的普遍性。

    make几乎安装在所有类似Unix的机器上。无论您使用的是AIX、Solaris、IRIX、BSD或Linux,如果安装了编译器,也有make。

    有些“替换”(如automake、cmake)甚至创建makefile,而make则依次执行这些文件。

    我愿意 一定地 建议熟悉品牌。如果由某人处理 学习 关于make,它是一个功能强大的工具,可以以多种方式使用,甚至不一定与软件开发相关。

    即使您最终使用了不同的构建工具,您也可以“循环”使用make所学到的经验,因为基础概念非常相似。而大量的构建项目意味着总有机会找到一个现有的生成文件。

    不过,有一件事。 Get it right from the beginning.

        2
  •  8
  •   unwind    15 年前

    我认为您没有看到(GNU)make被提到的原因是它通常是默认的;如果您有一个GNU工具链,您将已经make了。因此,大多数人开始谈论构建工具,谈论其他事情。

    根据我的经验,make很好,但是要让它做你想做的事情可能有点困难。这也许有点不可思议,但它已经被证明是可行的。

        3
  •  3
  •   J. Polfer    15 年前

    之所以如此流行,是因为它在Linux /*NIX项目中主要用于C/C++源,并且比你提到的任何其他工具都要古老,因此它经受了时间的考验,已经成熟。有点像焦油。

    老实说,我只知道制造。上面提到的其他工具可能更好,但是很多项目只是使用一个基本的makefile,你最好至少知道一点。不仅是你自己的工作项目,而且是你在网上找到的大多数开源项目。

        4
  •  2
  •   Nosrama    15 年前

    这真的取决于你会用多少。

    如果你对C/C++项目做了很多工作,那么是的,我建议你多学一点,因为一个大的make文件比你提到的其他构建工具有更陡峭的学习曲线。

    如果你不工作,或者用其他语言工作,比如C语言,Java或者PHP,那么你最好学习与这些语言相关的构建工具。

        5
  •  1
  •   anon    15 年前

    像所有工具一样,如果你使用它,你应该花点时间 变得相当熟练。另外,一些工具(例如cmake)生成makefile,您可能有一天需要处理这些生成的文件。

    GNU make有一个 excellent manual -花一两个小时来读当然值得。

        6
  •  1
  •   Pete    15 年前

    例如,make是Linux系统上的事实标准。它是一个非常复杂的工具,也是一个非常强大的工具。

    它非常适合学习如果你正在开发C或C++,特别是如果目标为LINU/*NIX。

    make的一个特性是,可以为何时重建文件设置依赖项。例如,将每个C或C++文件构建到.Obf文件中,最后,将所有.Obf文件链接到一个可执行文件。但是,可执行文件可能是一个静态链接库,它与其他.obj文件链接到另一个可执行文件中。

    确保编译时间尽可能短,因为可以定义只有当C文件或任何相关头文件比.obj文件更新时,才应编译它。因此,只有当步骤的当前源文件比目标文件新时,才会执行任何编译或链接步骤。

    如果您正在开发中,例如C,则不需要进行这种依赖性检查,因为所有.cs文件都会同时编译为一个可执行文件。

    因此,结论是您应该使用一个非常适合您选择编程语言的构建工具。

        7
  •  0
  •   Rushyo    15 年前

    即使你最终喜欢另一个构建工具(我个人喜欢vs…我知道……)知道make可能会更有用。

    make有许多应用程序,虽然它并不总是一项任务的理想选择,但在处理新技术时,它是坚定和灵活的。

        8
  •  0
  •   T.E.D.    15 年前

    我猜你在哪里工作可能不一样,但我知道无论我在哪里工作,如果我至少没有学会如何阅读makefiles,我都会成为一个不那么有价值的员工。即使在所有Windows VisualStudio环境中,它也会不时出现。

    例如,我们刚得到一个工作,它涉及将一堆旧的CX/UX代码移植到Windows。旧代码是用makefiles生成的。如果不知道如何读取这些旧的makefile,就无法理解他们的旧系统。