我正在尝试定义一个Makefile,它将文件名(例如.foo)作为命令行中的变量,然后编译&使用gcc链接。 因此,如果我输入 make foo ,它将编译 foo.c ,将 foo.o 链接到所需的库,并清理.o文件。到目前为止,这是我的代码,有没有人对我出错的地方有任何建议?
@: $@.o
@echo target is $@
gcc $@.o -v -lmar -lbar -DDEBUG -o $@
rm $@.o
$@.o: $@.c
gcc -c -v $@.c
答案 0 :(得分:2)
Make已将参数用作目标列表。并且它已经implicit rules可以做你想要的。你应该能够像你的makefile一样逃脱:
LDLIBS=-lmar -lbar
LDFLAGS=-v
CFLAGS=-v