75得票8回答
在makefile中禁用内置规则和变量

我希望能够通过在make文件内部传递-r和-R选项来禁用内置规则和变量。也欢迎其他可以隐式透明地实现此目的的解决方案。 我找到了几个参考文献,提到使用MAKEFLAGS,但遇到了类似的问题。

67得票8回答
为什么我们可以自己编写makefile,却需要使用像Autotools这样的构建工具?

最近,我将我的开发环境从Windows切换到了Linux。到目前为止,我只使用Visual Studio进行C ++开发,所以许多概念,比如make和Autotools,对我来说是新的。我已经阅读了GNU makefile文档,并对它有了基本的理解。但是我对Autotools有点困惑。 据我...

65得票1回答
一个依赖于指定目录下所有文件(包括子目录中的文件)的Makefile规则

在我的Makefile中有一条规则,它将整个目录(res/)压缩成一个ZIP文件。显然,当 res/ 目录下的任何文件发生更改时,此规则需要执行。因此,我希望这个规则的前提条件是该目录下的所有文件。如何实现这个规则? 在启用了 Bash 的 globstar 选项 后,您可以使用通配符模式 ...

64得票3回答
Makefile中的通配符目标

我该如何压缩以下的Makefile目标?$(GRAPHDIR)/Complex.png: $(GRAPHDIR)/Complex.dot dot $(GRAPHDIR)/Complex.dot -Tpng -o $(GRAPHDIR)/Complex.png $(GRAPHD...

64得票3回答
如何让GNU make明确测试失败?

多年不使用make,我又需要使用它了,现在是gnu版本。我相信我应该能够做到我想要的,但还没有弄清楚如何实现,也没在Google等搜索引擎中找到答案。 我正在尝试创建一个测试目标,它将执行我的程序多次,并将结果保存在日志文件中。一些测试应该会导致程序中止。不幸的是,我的Makefile在第一...

62得票3回答
生成文件时如何让echo显示"$PATH"字符串

我试图强制让make文件显示下一个字符串:"Please execute next commands: setenv PATH /usr/local/greenhills/mips5/linux86:$PATH" 问题出在"$PATH"上。命令行无法找到该命令。@echo "setenv PA...

60得票1回答
在GNU makefile中是否可以有多个.PHONY目标?

我有一个大的 .PHONY 命令: .PHONY: clean cleanall 可以把它分成多个部分吗,如下所示? .PHONY: clean clean: rm -rf build/ .PHONY: cleanall

60得票4回答
如何在GNU Makefile中获取shell命令的退出状态?

我有一个Makefile规则,其中我正在执行一个Linux工具。我需要检查工具命令的退出状态,如果该命令失败,则必须中止make。我在Makefile中尝试使用$?、$$?和\$?来检查。但是当Makefile运行时,它们会给我语法错误。应该如何正确处理?这是Makefile中相关的规则: ...

59得票8回答
GNU Make:列出特定运行中所有变量(或“宏”)的值

当运行make时,如何列出Makefile中所有变量(也称为宏)的当前值? 例如,如果Makefile中有以下内容:CUR-DIR := $(shell /bin/pwd) LOG-DIR := $(CUR-DIR)/make-logs 那么我想让它告诉我:CUR-DIR = /home/j...

59得票6回答
GNU make 的 -j 选项

自从我了解了“-j”选项后,我一直很自信地使用“-j8”选项。前几天,我在编译安装Atlas时,make命令失败了。最终我发现问题是由于make命令的并行编译导致了顺序错误。当我回到单线程的make命令时,一切都正常了。这让我有些担心。在编写自己的make文件时,我需要注意哪些条件来避免出现使...