У меня есть немного хакерский make-файл для запуска тестов:
### 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 удаляет скомпилированный тест?
Примечание: я довольно сильно отредактировал этот пример, чтобы упростить его. Я мог допустить некоторые ошибки.