2017-12-10 29 views
0

그래서 나는 c 프로그램을위한 makefile을 만들었습니다. 어떤 이유로 '깨끗한'것이 작동하지 않습니다. 여기 내 메이크 약간의 : 나는 실행하면'make clean'이 작동하지 않습니다.

CC=gcc 
FLAGS=-c -Wall -I. 
CLEANC=rm -rf *.o 

move.o: move.c 
    $(CC) $(FLAGS) move.c 
/*Lot more codes like this^^^*/ 

clean: 
    $(CLEANC) 

명령 프롬프트에서 '깨끗한하게는'나는 다음과 같이 해요 :

rm -rf *.o 
process_begin: CreateProcess(NULL, rm -rf *.o, ...) failed. 
make (e=2): The system cannot find the file specified. 
makefile:116: recipe for target 'clean' failed 
make: *** [clean] Error 2 

나는 난 무엇을 알아낼 수 없습니다 잘못하고있다. 나는

rm -f *.o 
rm *.o 
rm *o 
rm -f *.o test.exe //test.exe is executable 

에 CLEANC을 변경하려고했지만 여전히 상관없이 내가 뭘하려 날 같은 오류를주지 않았다. 나는 정말로 도움을 사용할 수있다. 미리 감사드립니다.

+0

재생산 할 수 없습니다. Makefile은 GNU Make 3.81과 GNU Make 4.2.1에서 완벽하게 작동합니다. –

+0

어떤 OS입니까? 커맨드 라인에서'rm -f * .o'를 시도하면 어떻게됩니까? – Beta

+0

나에게도 같은 오류가 발생합니다. MinGW 및 MSYS가 설치된 Windows 10을 사용하고 있습니다. 'make'와 'make compile'은 완벽하게 작동하지만 어떤 이유로 'make clean'은 항상 저에게 같은 오류를줍니다. – ioaop

답변

2

오류 출력에 나타나는 CreateProcess을 보면 Windows에서 make을 실행한다고 가정합니다.

즉, rm 명령이 없으므로 del을 사용해야하고 그에 따라 -rf 플래그도 적절하게 조정해야합니다.

+2

Windows의 경우 'del/Q/S * .o'라고 생각합니다. 객체 파일이'.o' (즉, mingw GCC)로 끝나고'.obj' (Visual Studio)가 아닌 것으로 가정합니다. – lockcmpxchg8b

+0

고마워요! 두 답이 모두 작동했습니다! 'rm' 명령은'make'가 완벽하게 정상적으로 작동했기 때문에 작동한다고 가정했습니다. – ioaop

+0

여전히 Windows에서'rm' 명령을 사용하고 싶다면 Cygwin을 살펴 보길 권한다. – igagis