问题标签 [makefile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
304 浏览

makefile - “make”命令的其他用途是什么?

有一天,一位系统管理员老师告诉我,我应该学习使用“make”,因为我可以将它用于许多其他只会触发编译的事情。

我再也没有机会谈论它了。你有什么好的例子吗?

作为奖励,这个工具是否已被弃用,以及现代替代品是什么(用于编译目的和其他)?

0 投票
3 回答
1030 浏览

delphi - Delphi 7 抱怨找不到文件

我有一个 BPG 文件,我已对其进行了修改,以用作我们公司自动构建服务器的 make 文件。为了让它工作,我不得不改变

在 DPR 文件中让它工作,而编译器没有给我一些关于未找到 unit1.pas 的闲话。这很烦人,因为我想使用 BPG 文件来实际查看项目中的内容,并且每次添加新单元时,它都会将“unitx.pas”中的内容自动插入到我的 DPR 文件中。

我正在运行make -f [then some options],我正在编译的 DPR 与 make 文件不在同一目录中,但我不确定这是否重要。只要in 'unit1.pas删除,一切都可以正常编译。

0 投票
5 回答
1101 浏览

c# - 如何在 C# 中运行一系列进程并保持其环境设置?

我正在开发一个自动构建器,它将在我们的构建过程中运行一系列步骤并构建我们的目标应用程序。我们曾经使用一个批处理文件来设置一堆环境变量或调用工具来设置环境变量并最终运行“make”。

我一直在使用“进程”类,它非常适合运行这些命令,但不幸的是,每次运行都会改变环境(比如在 PATH 中添加一些东西),当“进程”完成时,这些变量就会丢失。下一个“进程”被实例化并再次从“调用”应用程序(我的 exe)继承环境 - 这意味着最后一个命令设置的所有环境都丢失了。你如何处理这种情况?有没有更好的方法在 C# 中运行一系列类似批处理文件的命令并维护它们设置的环境?

请注意,不幸的是,老同学已经声明 nant/ant 不是一个选项,所以“嘿,为什么不使用 Nant - 它就是这样做的!” 不是我要找的答案。

谢谢。

0 投票
2 回答
891 浏览

visual-studio - 只有在构建成功的情况下才能在 Visual Studio 中启动生成文件的任何巧妙方法?

我们有一个在构建过程中最后构建的 makefile,它使用 Visual Studio 启动我们的单元测试。不幸的是,如果构建失败,makefile 仍然会被处理,并且我们会有额外的(烦人的)错误。有什么办法可以防止吗?

示例项目 A:构建 dummy.exe 项目 B(makefile):构建命令是:运行 dummy.exe /unittest

当项目 A 出现构建错误时,我们希望项目 B 跳过其构建命令。谢谢!

0 投票
5 回答
4893 浏览

ruby - 如何在 Windows 上使用 MinGW 制作和编译 Ruby Gems?

尝试在 Windows 机器上更新一些 gem,但对于没有预编译二进制文件的 gem,我不断收到此错误输出:

提供的配置选项:

这些是在安装 gem 期间提供给extconf.rb ruby​​ 文件的配置选项。

我已经安装了MinGW,所以我应该拥有安装、制作和编译这些 gem 所需的一切。
However, I do not know how to change the configuration for RubyGems so that when extconf.rb is called it includes the appropriate options pointing to the MinGW include directory.

0 投票
1 回答
808 浏览

c++ - 如何在 make 依赖文件中包含 IBM XLC 模板 *.c 文件?

对于 XLC 编译器,模板化代码位于 *.c 文件中。然后,当编译使用模板函数的程序时,编译器会在 .c 文件中找到模板定义并实例化它们。

问题是在执行 xlC -qmakedepend 生成构建依赖项时,默认情况下不包含这些 .c 文件。因此,如果您更改其中一个 .c 文件,您将不会自动构建依赖它的所有内容。

有没有人找到解决这个问题的好方法?

0 投票
13 回答
2800 浏览

java - 有哪些好的 java make 实用程序?

我正在寻找用于构建大型 java 程序的 make 实用程序。我已经知道 ANT,但想看看还有什么可用的。

理想情况下,它应该能够处理破坏 GNU Make 的 .java->.class 包目录怪异。

Win32,但跨平台是加分项。

编辑: 我看到使用 ANT 的一些缺点,这就是为什么我想查看其他选项的原因,尽管我可能最终还是会使用它,只是因为它有效。

  • 需要非平凡的 XML makefile,“HelloWorld”已经 25 行,任何更合理的程序都会很快变大。
    • ant 教程显示了 ant build.xml 文件的比较,这些文件与只运行所有 java 命令的大型 .bat 文件大致相同,只是时间更长。http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html,我已经有了其中之一。
    • Xml 意味着每一个依赖、变量、目标、规则和项目都有多余的东西,它只会让行变得难以阅读。尖括号税
  • 为我解决了所有错误的问题。
    • ant 使编写 jar 和 javac 命令行更容易,更容易生成清单,更容易指定 .java 源文件,更容易指定 jvm/java 属性,更容易编写自定义构建工具。
    • ant 并没有使 java 类依赖更容易,而且似乎没有更强大的变量系统,这两件事通常都可以通过 make 实用程序来解决。

我会使用 gnu make,但它无法确定带有包声明的 .java 文件的 .class 文件将在哪里结束。

0 投票
3 回答
116299 浏览

c - makefiles - 一次编译所有 c 文件

我想尝试 GCC 整个程序优化。为此,我必须一次将所有 C 文件传递​​给编译器前端。但是,我使用 makefile 来自动化我的构建过程,而且我不是 makefile 魔术方面的专家。

如果我想只使用一次对 GCC 的调用来编译(甚至可能是链接),我应该如何修改 makefile?

供参考 - 我的 makefile 如下所示:

0 投票
1 回答
255 浏览

java - javadeps的现代等价物?

我正在寻找 javadeps 的替代品,我曾经用它来生成 Makefile 的各个部分,以指定哪些类依赖于哪些源文件。

不幸的是,javadeps 本身已经有一段时间没有更新了,并且无法解析泛型类型或静态导入。

到目前为止,我发现的最接近的是Dependency Finder。它几乎可以满足我的需要,但不将非公共类与其源文件匹配(因为源文件名与类名不匹配。)我当前的项目有一个接口,其唯一的客户端是包私有类的内部类,所以这是一个重大问题。

或者,如果您不知道执行此操作的工具,您如何使用命令行工具在大型 Java 项目中进行增量编译?您是否一次编译整个包?

笔记:

  1. 不要将 javadeps 与jdepend混淆,后者的用途非常不同。
  2. 这个问题是对“推断java项目依赖关系的工具”的重写,这似乎被三分之二的响应者误解了。
0 投票
4 回答
106341 浏览

makefile - Makefile If-Then Else 和循环

有人可以解释如何在 Makefiles 中使用 if-then 语句和 for 循环吗?我似乎找不到任何带有示例的好的文档。