是否可以编写通用Makefile,它可以获得任何目标,并像gcc的包装一样,但是带有参数?例如,这意味着使用make作为gcc的Makefile文件
make 01.c
都会有相同的结果
g++ -o 01.out 01.c
是否可以编写通用Makefile,它可以获得任何目标,并像gcc的包装一样,但是带有参数?例如,这意味着使用make作为gcc的Makefile文件
make 01.c
都会有相同的结果
g++ -o 01.out 01.c
make
已经有几个"implicit rules"做你想要什么。
例如,即使没有makefile文件,
make 01.o
将运行:
c++ -c -o 01.o 01.cpp
如果发现在你的当前目录下名为01.cpp
文件。如果您想传递更多标志,则可以设置CXXFLAGS
环境变量。如果您确实使用g++
而不是系统编译器,则也可以设置CXX=g++
。
是 - 您使用隐式规则。
Summat像组默认的潜规则
您可以使用通配符也许(如果没记错的话)
.cpp.o:
$(CCC) $(CFLAGS) $< -o [email protected]
- %
。
但是,在命令行中指定的东西是目标,而不是源 - 你想要什么,而不是你拥有什么。
看起来你想要的东西大约是:
%.out: %.c
g++ -o [email protected] $<
这意味着:使(东西)的.out,首先要确保你有(点).C,然后运行G ++ -o(东西) .out(something).c
$ @始终是目标文件,$ <是第一个先决条件。
您需要运行make 01.out
而不是make 01.c