使用make作为gcc的Makefile

时间:2013-06-27 20:53:31

标签: gcc makefile

是否可以编写通用的Makefile,它可以获得任何目标,并且像gcc的包装器一样,但是带有参数?例如,这意味着

make 01.c

将与

具有相同的结果
g++ -o 01.out 01.c

3 个答案:

答案 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