Makefile 如何在GNU make中使用命令行参数?

Makefile 如何在GNU make中使用命令行参数?,makefile,Makefile,例如,我有10个名为ex1.c、ex2.c、ex3.c…ex10.c的源文件,将来可能还会有更多 我是否可以在GNU Make中使用命令行参数作为变量,这样当我想编译ex1.c时,我就可以键入Make 1。如果我想编译ex10.c,我可以输入make10。当我以后添加更多的源代码(如ex100.c)时,我不需要向makefile添加更多的行。我觉得这不是一个好主意,但是的,你可以做到 要生成对象文件(例如,ex3.o),请执行以下操作: 创建一个示例shell/命令行脚本您应该能够只需再键入两个

例如,我有10个名为
ex1.c
ex2.c
ex3.c
ex10.c
的源文件,将来可能还会有更多


我是否可以在GNU Make中使用命令行参数作为变量,这样当我想编译
ex1.c
时,我就可以键入
Make 1
。如果我想编译
ex10.c
,我可以输入
make10
。当我以后添加更多的源代码(如
ex100.c
)时,我不需要向
makefile
添加更多的行。

我觉得这不是一个好主意,但是的,你可以做到

要生成对象文件(例如,
ex3.o
),请执行以下操作:


创建一个示例shell/命令行脚本您应该能够只需再键入两个字母即可执行
make ex1
make ex10
make ex100
;这是正统的,在
makefile
中不需要特殊规则。显然,如果你使用一个较长的名字(
make example-10
),就有更多的内容需要输入,但是否真的值得,还有点争议。@JonathanLeffler是的,你是对的
%: ex%.c
    $(CC) -c $< -o ex$*.o
%: ex%.c
    $(CC) $< -o ex$*