我喜欢从perlscript创建一个c-和h-file。因此,我创建了以下规则:
abc.[ch]:
@perl makestrings abc 我收到了这个错误消息:
File `abc.h' does not exist.当我使用规则abc.h:时,它会起作用。我想我遇到了一个问题,那就是c文件没有包含在后面。因此,我需要在创建abc.h或abc.c时重新启动make。
发布于 2017-07-31 18:38:35
abc.[ch]是abc.c或abc.h的通配符。但它是一个通配符,也就是说,如果文件不存在,它将扩展为字符串abc.[ch] (不是您想要的)。如果只有一个存在,它会扩展为这个(不是你想要的)。您可以尝试如下所示:
.PHONY: abc_ch
abc_ch: abc.c abc.h
abc.c abc.h:
@perl makestrings abc发布于 2017-07-31 20:16:34
您的Makefile是正确的,但您应该添加一个加号规则。
abc.o: abc.c abc.h
${CC} -o abc.o abc.c在这种情况下,abc.o也需要abc.c和abc.h,所以make将首先创建abc.c和abc.h,然后尝试构建abc.o。
一个附加建议:我将向脚本添加一个依赖项:makestrings perl-abc.[ch]。也可能是makestrings使用的任何其他文件。
https://stackoverflow.com/questions/45411049
复制相似问题