问题标签 [gnu-make]

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 投票
2 回答
2032 浏览

android - Cygwin 和 NDK 的“错误:找不到有效的 GNU Make 可执行文件”

我是 NDK 的新手。(使用 Windows)。我已经下载了cygwin和NDK。我已将 NDK 解压缩到C:\. 当我运行 cygwin 时,我切换到 NDK 目录并运行命令

但我得到:

我已经下载了 GNU make 3.81 但仍然没有运气。

我与 GNU Make 有什么关系?我必须把它放在一个特殊的目录中还是将它添加到 PATH 中?

0 投票
1 回答
5477 浏览

makefile - GNU Make:如何在 $(eval) 中调用 $(wildcard)

我正在尝试为我的 Makefile 创建一个通用的构建模板,就像他们在eval 文档中讨论的那样。

我似乎无法让通配符函数在 eval 中工作。我遇到问题的基本代码如下所示。

当我用这个运行 make 时,输出是

基本上,PROGRAM_template 中的通配符调用没有像我预期的那样被评估。调用会产生一个空列表。
不过,加入呼叫正在被正确评估。

那么,我做错了什么?我的猜测是

不正确,但我想不出正确的方法。

编辑 一旦解决了这个问题,我很快就遇到了 eval 的另一个问题。我将它作为一个新问题发布在 GNU Make 3.80 eval bug 的解决方法

0 投票
2 回答
2790 浏览

makefile - GNU Make 3.80 eval 错误的解决方法

我正在尝试为我的 Makefile 创建一个通用的构建模板,就像他们在eval 文档中讨论的那样。

我遇到了 GNU Make 3.80 的一个已知错误。当 $(eval) 计算超过 193 个字符的行时,Make 崩溃并出现“虚拟内存耗尽”错误。

我拥有的导致问题的代码如下所示。

当我运行这个 Makefile 时,我得到

预期的输出是 ./src/test/ 中的所有 .c 文件都被编译成 .o 文件(通过隐式规则)。

问题是 $$($(1)_SRC_FILES) 和 $$($(1)_OBJ_FILES) 一起超过 193 个字符(如果有足够的源文件)。

我尝试在只有 2 个 .c 文件的目录上运行 make 文件,它工作正常。只有当 SRC 目录中有许多 .c 文件时,我才会收到错误消息。

我知道 GNU Make 3.81 修复了这个错误。不幸的是,我没有权限或能力在我正在使用的系统上安装更新版本。我被困在3.80。

那么,有什么解决方法吗?也许将 $$($(1)_SRC_FILES) 拆分并在评估中单独声明每个依赖项?

0 投票
1 回答
8540 浏览

makefile - 使用 VPATH 和包含的 Makefile 诡计

我正在玩弄制作文件和 VPATH 变量。基本上,我从几个不同的地方(由 VPATH 指定)获取源文件,然后使用我想要的 .o 文件列表将它们编译到当前目录中。

到目前为止一切顺利,现在我将依赖信息生成到一个名为“.depend”的文件中,并将其包括在内。如果包含文件不存在,Gnmake 将尝试使用到目前为止定义的规则来创建包含的文件,所以没关系。基本上,我的 makefile 看起来像这样。

现在对于真正的问题,我可以以任何方式抑制 .depend 文件的生成吗?我目前正在一个 clearcase 环境中工作-> sloooow,所以我希望在更新依赖信息时对其进行更多控制。

这或多或少是一个学术练习,因为我可以在执行 make 之前将它包装在一个触及 .depend 文件的脚本中(从而使其比任何源文件都更新),但如果我能以某种方式知道它会很有趣使用“纯”制作压制它。

我无法删除对源文件的依赖(即简单地使用.depend:),因为我依赖于$^变量来为我做 VPATH 解析。

如果有任何方法可以仅因更新#include指令而更新依赖项,那当然会更好..但我并没有为此屏住呼吸.. :)

0 投票
3 回答
90 浏览

linux - 如何构建这个项目?

我长期以来一直是视觉工作室开发人员,只是想了解 linux/unix 世界中的情况。我在 source forge 中找到了一个开源项目 ( Gcomandos ) 并尝试构建它。当我下载源代码时,我得到了这些文件:

我现在迷路了。我尝试制作 .am 或 .in 文件,但 GnuMake 说没有什么可制作的。我尝试运行 shell 脚本,但出现错误。任何指导表示赞赏。

0 投票
2 回答
3840 浏览

makefile - 使子目录失败使不停止构建

我有一个设置,其中 make 正在通过一堆子目录并在这些目录中进行制作。我希望它立即停止构建失败。下面的代码片段说明了这一点。有人可以指出我应该如何设置makefile或一些关于从顶层到子目录构建的文档的正确方向吗?

0 投票
6 回答
65351 浏览

makefile - GNU make 中的递归通配符?

我已经有一段时间没有使用了make,所以请多多包涵……

我有一个flac包含 .FLAC 文件的目录。我有一个相应的目录,mp3其中包含 MP3 文件。如果 FLAC 文件比相应的 MP3 文件更新(或相应的 MP3 文件不存在),那么我想运行一堆命令将 FLAC 文件转换为 MP3 文件,并复制标签。

踢球者:我需要flac递归搜索目录,并在目录中创建相应的子目录mp3。目录和文件的名称可以包含空格,并以 UTF-8 命名。

我想用它make来驱动它。

0 投票
10 回答
68796 浏览

makefile - GNU make:作业数量是否应该等于系统中 CPU 内核的数量?

关于 GNU make 中的作业数量是否应该等于内核数量,或者您是否可以通过添加一个可以排队的额外作业而其他作业“工作”来优化构建时间,似乎存在一些争议.

使用四核系统更好-j4还是-j5在四核系统上更好?

您是否看过(或做过)任何支持其中之一的基准测试?

0 投票
6 回答
204737 浏览

cmake - 将 CMake 与 GNU Make 一起使用:如何查看确切的命令?

我将 CMake 与 GNU Make 一起使用,并希望准确查看所有命令(例如编译器的执行方式、所有标志等)。

GNU make has --debug,但似乎没有那么有帮助,还有其他选择吗?CMake 是否在生成的 Makefile 中提供其他标志以用于调试目的?

0 投票
2 回答
857 浏览

gnu-make - 为什么父目录中的 Gnumake 行为不同?

我很困惑为什么当我从父目录执行 gnumake 时它的行为不正确,而如果我 cd 到子目录并执行 gnumake 它可以正常工作。

在父makefile中,我有这样的规则:

我也对上面的最后一行进行了这样的尝试,但同样失败:

这与从顶层执行相同的结果不同

父 makefile 中有一个东西正在进入子目录 makefile 并导致它的行为不正确,但我不知道如何找到它。

我看到的症状是子目录配置为 zlib 生成的 makefile 规则错过了依赖项,我得到这个结果直接到 ar 而没有首先生成 .o(s):

与它正常工作的 zlib 目录相比: