100得票16回答
列出在GNU make中定义中包含变量的目标/目标清单

我有一个非常大的makefile,通过计算变量的名称来动态创建一些目标。(例如 foo$(VAR) : $(PREREQS))。是否有办法让gnu make在展开这些变量后输出目标列表? 我希望能够获取任意makefile的目标。我正在尝试为我的shell编写自动补全函数。

99得票3回答
从Makefile变量中删除项目?

我有一个Makefile,其中包含几个其他Makefile,这些Makefile又都向一个变量添加,如下所示:VAR := Something SomethingElse VAR += SomeOtherThing (...) 现在我希望从变量VAR中删除SomethingElse。我应该用...

94得票1回答
Makefile - 缺少分隔符

可能是重复问题: Make错误:缺少分隔符 在makefile中有以下代码:PROG = semsearch all: $(PROG) %: %.c gcc -o $@ $< -lpthread clean: rm $(PROG) 和错误missing separ...

91得票1回答
在制作宏中,":="和"="有什么区别?

可能是重复问题: GNU Makefile 中 =、?=、:= 和 += 的区别是什么? 我只了解非常基本的makefile语法,并且正在阅读另一个项目的makefile,发现使用:=进行宏声明。为什么他们要使用这个符号? 换句话说,以下代码是否有区别:MYMACRO = hi...

89得票9回答
在每个子目录中运行make。

我有一个目录(root_dir),其中包含许多子目录(subdir1, subdir2, ...)。 我希望在每个子目录中使用放置在其中的Makefile运行make。 (显然假设每个subdir...内部都有自己的Makefile)。 因此,基本上有两个问题: 如何自动获取Makefile...

85得票7回答
GNU make调试

在make中,有没有一种命令行方式可以找出目标的先决条件中哪些没有更新?

83得票9回答
如何将目标文件放在单独的子目录中

我尝试使用make将目标文件放置在单独的子目录中时遇到了问题,这可能是一种非常基本的技术。我已经尝试使用此页面中的信息: http://www.gnu.org/software/hello/manual/make/Prerequisite-Types.html#Prerequisite-Typ...

83得票4回答
在执行之前让CMake打印命令

我正在处理一个在Linux下使用CMake构建的大型C++项目。 CMake运行正常,生成了模块和应用程序树中的大量Makefile文件。然而,运行GNU make时会导致链接器错误。我该如何让make在运行命令之前打印出精确的命令? -d选项不会打印命令,但会输出大量无用信息。 -n选项...

80得票3回答
如何在gnumake文件中强制出现错误

我希望在我的makefile中检测一个条件,即某个工具的版本错误,并强制make失败,同时输出一个错误消息指示该项不是正确的版本。 有人能给出一个实现的例子吗? 我尝试了以下方式,但它不是正确的语法:ifeq "$(shell svnversion --version | sed s/[^...

76得票4回答
通过命令行向GNU make变量追加内容

我正在使用GNU-make的Makefile来构建一个C项目,其中有多个目标(all, clean和一些特定于项目的目标)。在调试过程中,我想在单个构建中添加一些标志,而不永久编辑Makefile(例如添加调试符号或设置预处理器标志)。 以前,我是这样做的(使用调试符号示例):make ta...