삭제하기 않습니다왜 GNU는 파일 내가 테스트를 실행하기위한 약간 hackish 메이크있어
### Run the tests
tests := tests/test1 tests/test2 ...
test: $(tests)
$(tests): %: %.c
gcc -o [email protected] $(testflags) $<
[email protected]
그것은 작동을하지만, 내가 전에 할 본 적이 무언가를 확인합니다. 내 테스트가 현재 중단되어 버스 오류가 발생합니다. 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가 컴파일 된 테스트를 삭제하는 이유는 무엇입니까?
참고 :이 예제를 매우 간단하게 편집하여 더 간단하게 만들었습니다. 나는 실수를했을 수도있다.
+1은 테스트 프로그램을 생성하고 단일 규칙으로 실행하는 버그가있는 메이크 파일 때문에 동작이 발생했다는 유일한 답입니다. –
IMO가 더 나은 해결책입니다 : 더 깨끗하고 더 많은 "make-like". 그러나 세부 정보는보다 명확하게 처리 될 수 있습니다. 먼저 메이크 파일 작성자가 결정해야합니다. 테스트를 항상 실행하고 싶거나 테스트 파일이 다시 작성된 경우에만 테스트를 실행하고 싶습니다 (후자는 원래 예제에서와 동일). – MadScientist