【发布时间】:2010-09-02 17:10:58
【问题描述】:
在调用 shell 函数之前,make 似乎没有解析通配符 %,在这种情况下:
%.exe: $(shell cat %.txt)
gcc $? -o $@
如果我在 shell 上输入这个:
$ make test.exe
shell 抱怨它找不到“%.txt”,但我希望它会找到“test.txt”。
有没有办法解决这个问题?
谢谢!
【问题讨论】:
-
你能澄清一下你想用这条规则完成什么吗?
-
对于每个可执行文件 X,都有一个文件 X.txt 列出了它的所有源依赖项。我希望“make”将该文件的内容作为目标依赖项。
-
$(shell ...) 的扩展很早就发生了;你的错误发生在 make 甚至开始查看目标之前。请按照以下建议阅读 GNU Make 文档中的“二次扩展”章节。