是否可以编写通用的Makefile,它可以获得任何目标,并且像gcc的包装器一样,但是带有参数?例如,这意味着
make 01.c
将与
具有相同的结果g++ -o 01.out 01.c
答案 0 :(得分:0)
make
已经有几个"implicit rules"来做你正在尝试的事情。
例如,即使使用 no makefile ,
也是如此make 01.o
将运行:
c++ -c -o 01.o 01.cpp
如果在当前目录中找到名为01.cpp
的文件。如果要传递更多标志,可以设置CXXFLAGS
环境变量。如果你真的开始使用g++
而不是系统编译器,你也可以设置CXX=g++
。
答案 1 :(得分:0)
是 - 您使用隐式规则。
Summat喜欢(如果记忆能让我正确的话)
.cpp.o:
$(CCC) $(CFLAGS) $< -o $@
可能在默认隐式规则集
中答案 2 :(得分:0)
您可以使用通配符 - %
。
但是,命令行中指定的东西是目标,而不是源 - 你想要的东西,而不是你拥有的东西。
看起来你想要的是:
%.out: %.c
g++ -o $@ $<
这意味着:做(某事).out,首先确保你有(某事).c,然后运行g ++ -o(某事).out(某事).c
$ @始终是目标文件,$&lt;是第一个先决条件。
您需要运行make 01.out
,而不是make 01.c