2011-08-25 6 views
1

여기 내 메이크입니다 :GNU 메이크 이상한 문제

CC = gcc 

CFLAGS = 

all: tm 

tm: tm.exe 

tm.exe: tm.c 
    $(CC) $(CFLAGS) -otm tm.c 

그리고 난이 결과를 가지고 :

gcc -otm tm.c 
gcc  tm.c tm.exe -o tm 
tm.exe: file not recognized: File truncated 
collect2: ld returned 1 exit status 
make: *** [tm] Error 1 

이유에서 "tm.exe" "GCC tm.c tm.exe -o TM을 "나온다 ????

난에 내 메이크 파일을 변경하면이 하나

가 잘 작동
CC = gcc 

CFLAGS = 

all: tm.exe 

tm.exe: tm.c 
    $(CC) $(CFLAGS) -otm tm.c 

...

덕분에 이전 ...

내가 WIN7 플랫폼에서 GNU 메이크업 버전 3.81를 사용

답변

0

tmtm.exe에서 만들기위한 규칙을 추가하지 않았습니다. 그러나 실제로 Windows에서 .exe 확장명을 지정할 필요는 없으며 자동으로 처리됩니다. 그래서 이렇게 말하십시오 :

.phony: all clean 

all: tm 

tm: tm.o 
     $(CC) -o [email protected] $+ $(LDFLAGS) 

tm.o: tm.c 
     $(CC) -c -o [email protected] $< $(CFLAGS) 
+0

감사합니다. 하지만 한 가지 더 묻는 질문은 여기에 전체 makefile입니다. – 549762085

+0

무엇이 질문입니까? –

+0

미안하지만 메이크 파일이 너무 깁니다. 그래서 나는 그것을 코멘트에 추가하지 않는다. 어쨌든, 대단히 감사합니다. 귀하의 회신은 많은 도움이됩니다 ... – 549762085