如何创建可以将目标扩展为依赖项的 make 模式规则?
我正在尝试创建一个具有如下规则的 makefile: ~/$ cat > Makefile << EOF FILES=a b c $(FILES): % : src/%/% @echo "$@ $<" EOF 运行命令给出: ~/$…
相当于 GNU 风格 makefile 的依赖项列表中的 ${@}
在 Sun make 中,我可以创建类似于以下内容的规则: ${OBJECTS} : ${@F:%.o=%.c} (...) ${<} ... 其中依赖项列表中的 ${@} 与目标的规则部分中的 ${@}…
在 Makefile 中找不到指向的库文件
我正在尝试编译这个工具。下面是其 Makefile 的开头: CC = gcc CFLAGS = -Wall -O2 -D TRACES DFLAGS = -g -Wall -o0 CPPFLAGS= $(INCLUDES:%=-I %) …
一个棘手的 GNU make 问题
下面是我希望 makefile 执行的一些伪代码: if (A doesn't exist) or (B is newer than A): rm -rf A create an empty A parallel_for X in (a large …
如何管理没有后缀的 make 目标?
我有一个生成多个目标的 make 文件。类似这样的: target-a: target-a.src target-include.src @$(BUILD_TOOL) -f $< -o $@ target-b: target-b.src t…
以下 GNU make shell 变量扩展有什么问题?
在这一行上: GCCVER:=$(shell a=`mktemp` && echo $'#include \nmain() {printf("%u.%u\\n", __GNUC__, __GNUC_MINOR__);}' | gcc -o "$a" -xc -; "$…
如何“gmake 32位USE_JEMALLOC=yes” Redis 在 FreeBSD 8.1 64 位上工作
我无法在 FreeBSD 64 位上编译 2.4 redis 32 位。我已经完成了: cd /usr/lib32 ftp ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/8.1-RELEASE/…
如何将命令应用于 GNU Make 中所有已更改的依赖项?
不知道该用谷歌搜索什么,所以如果这个问题很愚蠢,请原谅我。 我有一个依赖于多个文件的 Makefile 规则。当其中任何一个发生更改时,我希望 make 调…
测量(分析)Makefile 的每个目标所花费的时间
当我执行 make all 时,有没有办法递归地回显在 Makefile 的每个目标中花费的(系统、用户、实际)时间? 我想以更精细的方式对项目的编译进行基准测…
我怎样才能让 make 将二进制文件放在不同的位置?
简短而简单的问题,但我似乎在这里遇到了写作障碍: 假设我在与用于构建程序的 makefile 相同的目录中有一个源代码文件: confus@confusion:~/prog$ l…
“make” 和 “make” 和有什么不一样?和“创造一切”?
我有一个具有以下结构的 Makefile(工作示例)。 .PHONY: image flashcard put-files put-files: @echo "=== put-files" image: @echo "=== image" fl…
当依赖项列表更改时重新链接 Makefile 目标
我在 Makefile 中看到的一个常见问题是,当依赖项列表发生更改时,可执行文件(以及库)不一定会重新链接。例如: SRCS=$(wildcard *.c) CPPFLAGS=-MM…
如何在 makefile 中定义宏以启用 C 头中的功能?
我想在头文件之一中定义一个宏。我可以通过 makefile 设置它吗? 例如,我想设置一个宏“PAGING_ON”,我想将其作为源文件的预处理器宏。 (项目是C语…