我创建了一个简单的 makefile,即
COMMON=hello
all:
gcc $(COMMON).c -o $(COMMON).o
我运行 makefile 的目录包含三个文件:hello.c add.cMultiply.c Factorial.c 和 Subtraction.c。
当我使用 make
命令在终端中编译它时,会打印 hello。现在我想在程序中进行更改,以便当我编写“make add”或“makemultiply”或“makefactorial”时,相应的程序将编译。
最佳答案
只需在命令行上提供它即可。
make COMMON=bye
如果目标可以从当前目录中的文件名预测,那么您根本不需要 Makefile,因为 Make 已经知道如何从 multiply.c< 生成
.multiply
/
.PHONY: all
all: hello add multiply factorial
如果你真的想要一个明确的食谱,请尝试这样的事情。
%: %.c
gcc -o $@ $^
关于makefile - 如何从终端覆盖 makefile 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392863/