我有一个Makefile:
P5.obj P5.sym: P5.asm
lc3as P5.asm如果P5.obj或P5.sym过时,我希望汇编程序运行。但是,删除P5.sym不会导致重新生成P5.sym。
我做错了什么?
发布于 2018-01-16 19:14:01
(我假设lc3as P5.asm会生成文件P5.obj和P5.sym。假设您尝试运行make。)
默认目标是第一个目标,除非您没有指定它(取决于make方言)。
例如:
# Makefile
a b:
echo a > a
echo b > b如果您运行make,将同时创建文件a和b。如果删除b并运行make:
`a' is up to date.因为a目标是默认的。
一般的解决方案是在all的开头创建一个名为Makefile的目标:
all: a b
a b:
echo a > a
echo b > b
.PHONY: all在这种情况下,如果删除b,make将重新生成它(因为默认目标是all,其依赖项是a和b)。
发布于 2018-01-16 18:59:18
依赖关系通常以规则的名称为准,尽管从您的问题中我不清楚输入是什么,输出是什么。假设lc3as P5.asm生成P5作为输出(并依赖于所有P5.asm、P5.obj和P5.sym),条目可能如下所示:
P5: P5.asm P5.obj P5.sym
lc3as P5.asmhttps://unix.stackexchange.com/questions/417593
复制相似问题