Makefile 我如何用make在每个文件周围包装一个字符串,并包括文件名?
我对makefiles不太熟悉,手册也把我弄糊涂了。我有一种情况,我需要在目录中的每个文件周围包装文本,并将文件名也放入文件中 基本上我是从这个开始的:Makefile 我如何用make在每个文件周围包装一个字符串,并包括文件名?,makefile,Makefile,我对makefiles不太熟悉,手册也把我弄糊涂了。我有一种情况,我需要在目录中的每个文件周围包装文本,并将文件名也放入文件中 基本上我是从这个开始的: file1.exp file2.exp ... 需要像这样转换目录中的每个文件: "string1" [fileX's filename] "string2" [fileX's contents] "string3" > fileX.tmp 如何使用makefile实现这一点?或者我应该采取另一种方法,用另一种构建方法使我的应用程序复
file1.exp
file2.exp
...
需要像这样转换目录中的每个文件:
"string1" [fileX's filename] "string2" [fileX's contents] "string3" > fileX.tmp
如何使用makefile实现这一点?或者我应该采取另一种方法,用另一种构建方法使我的应用程序复杂化
顺便说一句,如果您能推荐任何不太可能让我感到困惑的make教程,我将不胜感激。您可以这样做:
all: fileX.tmp fileY.tmp
%.tmp : %
echo "string1 $< string2 `cat $<` string3" > $@
all:fileX.tmp fileY.tmp
%.tmp:%
echo“string1$%.tmp:%.exp…echo“string1”>$@;echo$<>>$@;echo“string2”>>$@;cat$<>$@;echo“string3”>$@;
(适当时插入-n).好吧,这就是为什么我说需求没有明确定义。我的答案和你的答案之间的区别是,你的答案会在每个项目“string1”之后添加换行符,“$Good point”。另外,您的解决方案的优点是它只产生2-3个额外的进程(sh、echo可能是shell内置的,cat),而不是2-10个(取决于换行符转义)。然而,echo的大多数实现都有一个开关来抑制换行符,而不是对$