我有一个稍微hackish makefile用于运行测试:
### Run the tests
tests := tests/test1 tests/test2 ...
test: $(tests)
$(tests): %: %.c
gcc -o $@ $(testflags) $<
$@
Run Code Online (Sandbox Code Playgroud)
它有效,但它使Make做了我以前从未见过的事情.我的测试目前已被破坏,并导致总线错误.Make提供以下输出:
gcc -o tests/test1 [flags blah blah] tests/test1.c
tests/test1
make: *** [tests/test1] Bus error
make: *** Deleting file `tests/test1'
Run Code Online (Sandbox Code Playgroud)
我对最后一行感到好奇.我以前从未见过Make.为什么Make删除已编译的测试?
注意:我非常重视这个例子以使其更简单.我可能会介绍一些错误.