问题标签 [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 投票
4 回答
24801 浏览

makefile - 在 Makefile 中进行“切换”的好方法

我正在工作中尝试更新的构建系统;目前,我正在尝试找到一种根据目标平台设置编译器和标志的好方法。

我想做的是

GNU Make 不支持。现在,我的第一个想法是做

这是一个相当不错的解决方案,但是,很难了解文件之间的差异,更不用说我期待编写和维护一个好的 60-80 个文件,每个文件都包含一组变量定义.

有没有人碰巧知道更好的方法来做到这一点?即基于另一个变量设置一组标志和其他选项?

0 投票
2 回答
828 浏览

makefile - Make: $(wildcard) 持有一个打开的目录

因此,GNU Make 的 $(wildcard) 函数在 Windows 上保持目录打开似乎存在这个问题。请参阅(未确认的)帖子“ make 正在打开一个目录”。谷歌没有提供关于该主题的太多信息。

简而言之:Makefile 在某些时候使用 $(wildcard) 函数,并保持目录打开,这通常会阻止“make clean”规则正常工作。第二次重新运行“make clean”通常可以解决它。

我在标准 DOS-Box 下使用 GNU Make 3.81 版。上面链接的帖子的作者正在使用 Cygwin。

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

0 投票
5 回答
116521 浏览

gcc - gcc error: wrong ELF class: ELFCLASS64

I was trying to compile a program using an external compiled object coreset.o. I wrote the public01.c test file and my functions are in computation.c, both of which compiles. However its failing on linking it together. What might be the problem?

0 投票
3 回答
61198 浏览

visual-studio - GCC 与 Visual Studio?

在 Visual Studio 2008 中使用 GCC 而不是 VC++ 有多难?显然,有些关键字不匹配,有些可能无法突出显示语法(除非您创建了新的语言服务)。

这就是“makefile 项目”的用途吗?

0 投票
3 回答
6319 浏览

makefile - 没有规则来制作目标 consoleio.c

最近的一期中,我发现 DJGPP 只能接受 DOS 命令行字符限制。为了解决这个限制,我决定尝试编写一个 makefile 来允许我传递更长的字符串。在编写一个makefile并对其进行测试的过程中,我遇到了一个奇怪的错误。生成文件如下:

尝试运行它时,我收到此错误:

我不明白为什么它试图为 .c 文件找到规则。据我了解,如果文件在那里,它应该只使用它。如何使 make 不需要 .c 文件的规则?

0 投票
4 回答
11259 浏览

makefile - 安静地在错误时回显命令行

我有一个 Makefile 用很长的命令行构建许多 C 文件,我们已经通过以下规则清理了输出:

现在这很好,因为 @ 抑制了正在发出的编译行。但是当我们得到一个错误时,我们得到的只是错误信息,没有命令行。谁能想到一种“简洁”的方式来发出命令行?我能想到的就是将它回显到一个文件中,并让更高级别的 make 捕获错误并 cat 文件。哈基我知道。

0 投票
6 回答
4489 浏览

makefile - 学习 GNUMake 的资源?

我正在尝试为我正在从事的一个小项目学习 GNUMake。到目前为止,即使是“基本”教程看起来也很粗糙,我还没有理解 makefile 的语法。

有没有人有一些好的资源让绝对初学者熟悉 GNUMake?

0 投票
5 回答
7383 浏览

shell - 如何使失败的 $(shell) 命令中断

我有一个 Makefile,它首先在应用构建规则(该工具为我编写)之前运行一个工具。如果这个工具(它是一个 python 脚本)以非空状态码退出,我希望 GNU Make 停在那里而不继续构建程序。

目前,我做这样的事情(顶级,即第1列):

但这不会停止 make ifcollect_sources.py以状态码 1 退出。这也捕获了标准输出,collect_sources.py但不会将其打印出来,所以我觉得我看错了方向。

如果可能的话,当一个简单的 MS-DOS shell 是标准系统 shell 时,该解决方案甚至应该可以工作。

有什么建议吗?

0 投票
2 回答
4956 浏览

makefile - Makefile 问题与在规则的命令部分中使用的定义中使用的条件有关

我有一段具有这种结构的makefile:

我在这里大大简化了,所有的回声实际上都是不平凡的命令块,还有更多的条件内容,但这抓住了我问题的本质。

出于技术原因,我现在不想进入,我需要摆脱那个 submake,但是因为 echo 代表了不平凡的代码量,我不想只是复制并通过 bob 的主体来代替子制作。

理想情况下,我想做的是这样的

不幸的是,条件似乎对我不利,它们产生“ifdef:找不到命令”错误,我尝试使用 eval 和 call 的各种组合来解决这个问题,但似乎无法找到让它工作的方法。

我该如何进行这项工作?它甚至是解决问题的正确方法吗?

0 投票
7 回答
145350 浏览

makefile - 如何仅使用一个makefile在子目录中生成带有源代码的Makefile

我在一堆子目录中有源代码,例如:

在项目的根目录中,我想使用如下规则生成单个 Makefile:

当我尝试这个时,它没有找到 build/widgets/apple.o 的规则。我可以更改一些内容以便在需要制作 build/widgets/apple.o 时使用 %.o: %.cpp 吗?