我有一个用于运行测试的略显老套的 makefile:
### Run the tests
tests := tests/test1 tests/test2 ...
test: $(tests)
$(tests): %: %.c
gcc -o $@ $(testflags) $<
$@
它有效,但它使 Make 做一些我以前从未见过的事情。我的测试目前已损坏,并导致总线错误。Make 给出以下输出:
gcc -o tests/test1 [flags blah blah] tests/test1.c
tests/test1
make: *** [tests/test1] Bus error
make: *** Deleting file `tests/test1'
我对最后一行很好奇。我以前从未见过Make这样做。为什么Make会删除已编译的测试?
注意:我对这个示例进行了大量编辑以使其更简单。我可能引入了一些错误。