Makefile很多类似的文件

时间:2014-05-27 01:04:07

标签: makefile

目录中有许多类似的文件:

answer1.c
answer2.c
answer3.c

能够运行:

# make s1
# ./answer1

目前我有:

s1:
    gcc -Wall -ansi answer1.c -o answer1
s2:
    gcc -Wall -ansi answer2.c -o answer2

我知道我可以将编译器和标志放在变量中,这样可以更容易地改变事物。但是,有没有办法(某种宏扩展)自动化,如:

#=1 2 3 4 5 6
s#:
    gcc -Wall -ansi answer#.c -o answer#

甚至更好

#=range(7)

或者我会更好地使用脚本语言,也许是为了编写Makefile?

2 个答案:

答案 0 :(得分:3)

我只使用3行makefile

CFLAGS = -Wall -ansi

all: answer1 answer2 answer3

有了它,您只需运行make即可知道您希望它执行的操作:它将从answer1创建程序answer1.c,从answer2创建程序answer2.c {1}},以及来自answer3的{​​{1}}计划。

要构建任何一个程序,只需说:

answer3.c

答案 1 :(得分:1)

您正在寻找pattern rules

s%: answer%
answer%: answer%.c
     gcc -Wall -ansi $< -o $@

问题make -p | less(至少使用GNU make),您会发现make已经内置了非常类似的规则。