2013-03-23 2 views
1

우분투에서 C와 함께 makefile을 사용하는 방법을 배우려고합니다. (저는 여러분이 생각하기에 초보자입니다.) "C on Book"에이 장에 대한 장이 있으며 main.c, sum.c, sum.h (코드 없음) 및이 코드가있는 makefile의 간단한 예제를 제공합니다.이 Makefile의 문제점은 무엇입니까?

sum: main.o sum.o 
    gcc –o sum main.o sum.o 
main.o: main.c sum.h 
    gcc –c main.c 
sum.o: sum.c sum.h 
    gcc –c sum.c 

이클립스에서이 코드를 컴파일하려고하는데 작동하지 않습니다. 위의 코드와 앞에서 언급 한 3 개의 파일을 사용하여 makefile이라는 파일을 만들었습니다. 이것은 내가받는 오류입니다.

make all 
make: *** No rule to make target `all'. Stop. 

나는 도움을 얻을 것이다. 감사합니다.

+0

Make는 "목표를 'all'로 만드는 규칙이 없습니다."... –

답변

7

'모두 작성'을 실행한다는 것은 'all'이라는 대상을 작성하려고하지만 아직 정의하지 않았 음을 의미합니다.

당신은 첫 번째 줄에 추가해야합니다

all: sum 

을 BTW, 당신은 (인수없이) 'make'를 실행하겠습니다 경우에는 '모든'대상 존재하지 않는 경우는 (첫 번째 대상을 구축 할 것). 그래서 '모든'목표를 첫 번째 목표로 삼는 것이 좋습니다.

+0

아니요, "all"대상이있는 경우 순서에 관계없이 다른 대상이 있는지 여부에 관계없이 먼저 빌드됩니다 . –

+5

@ H2CO3 : 첫 번째 대상은 all이 있는지 여부에 관계없이 "make"가 호출 될 때 만들어집니다. @Jah : GNU make를 사용하는 경우'.PHONY : all'을 추가하는 것이 좋습니다. –