问题标签 [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.
makefile - 如何配置我的 makefile 以进行调试和发布版本?
我的项目有以下生成文件,我想将其配置为发布和调试版本。在我的代码中,我有很多#ifdef DEBUG
宏,因此只需设置此宏并将-g3 -gdwarf2
标志添加到编译器即可。我怎样才能做到这一点?
澄清一下,当我说发布/调试构建时,我希望能够只键入make
并获取发布构建或make debug
获取调试构建,而无需手动注释掉 makefile 中的内容。
build - gmake 和 make 有什么区别?
我想了解“gmake”和“make”之间的区别?
在我的 linux 机器上,它们是相同的:
我猜这在所有平台上都不一样?有充分的理由使用其中一个吗?
为什么有这两个名字有什么历史意义吗?
build-process - 当指定为对多个规则的依赖时重新执行目标
我有以下 GNU 生成文件:
我希望目标“d”运行两次——因为它被 b & c 指定为依赖项。不幸的是,目标“d”只会执行一次。运行 make 的输出将只是“HI”,而不是“HI HI”。
我怎样才能解决这个问题?
谢谢!
为了澄清,目标是这样的:
build-process - 多个规则指定同一个假依赖,依赖只执行一次
我对下面的 GNU makefile 示例有疑问:
当我运行make时,我希望为每个指定目标'prepare'然后是目标'build'的子目录调用make。不幸的是,$(subdirs) 目标执行一次(使“准备”目标),但不会再次为“构建”目标执行。
似乎对于规则 x,make 确定需要运行 $(subdirs) 目标,但对于规则 y,$(subdirs) 目标是最新的。
有没有什么办法解决这一问题?
谢谢!
build-process - Win32 路径作为目标/依赖项
是否有可能拥有一个带有包含 win32 路径名的目标/依赖项的 GNU makefile?我目前正在使用 GNU make 的 win32 3.81 版本,驱动器号似乎有困难。例如:
上面的 makefile 片段会产生错误。特别是,以下:
这个问题有解决方案吗?
谢谢!
recursion - 递归gmake问题
我需要编写一个快速生成文件来构建我的所有项目。这是 C++ 代码,我正在使用 gmake。
假设我有一个目录列表,我想 cd 到每个目录,发出 gmake 命令,如果成功,则转到下一个,依此类推。
我通过查看gmake 手册做了这个
它适用于“所有”目标 - 如果我只输入 gmake,它会做正确的事情。但是如果我做 gmake clean 它什么都不做。
我边走边学 gmake,所以我肯定在这里做一些愚蠢的事情:)
谢谢你的帮助。
makefile - gmake 编译目录中的所有文件
我们有一些 C++ 代码,我们需要在其中创建一个 make 文件。每个 .h 和 .C 对创建一个对象,然后将一些对象链接在一起形成一个可执行文件。很标准的东西。
这个非 gnu make 命令只是将所有文件构建到目录中的对象中
这样做是为每个 %.C 文件(即每个 .C 文件)构建一个相应的 .o 文件。
有人知道如何用 gmake 做到这一点吗?
干杯
标记
makefile - 使用 GNU Make 输出平面对象文件目录结构
我有一个使用 GNU Make 的 C++ 小项目。我希望能够打开以下源文件:
进入以下输出结构(此时我不关心重复):
到目前为止,我有以下内容,不幸的是,它把 .o 和 .d 放在每个 .cpp 旁边:
我知道 $(notdir ...) 函数,但此时我使用它来过滤对象的努力失败了。任何人都可以对此有所了解吗?这似乎是相当合理的事情。
makefile - GNU Make 和通配符 - 缺少文件
我有一个具有以下类型规则的 Makefile:
该generate-images
脚本不仅将 HTML 文件(至标准输出)写入当前目录,还将几个 .png 文件写入当前目录。这里的目标是将它们转换为 .gif。(不是真的,但这是一个例子)
如果我直接调用它,这将起作用。问题是:如果我从另一个依赖项的规则调用它foo.html
,则通配符语句无法找到任何文件。换句话说,它只是make
在没有参数的情况下调用,这不是我想要的。
通配符是怎么回事?或者,有没有更好的方法来做到这一点?
build-process - 并行 make 使用的平均负载代表什么?
在 Windows 上使用 GNU make,负载平均值究竟代表什么?
例如:
2.5是什么意思?