2012-03-27 13 views
14

Dur:make: *** 'all' hedefini yapmak için kural yok. Bu hatayı almaya devam

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

benim make dosyası şuna benzer olsa da:

CC=gcc 
CFLAGS=-c -Wall 

all: build 

build: inputText.o outputText.o main.o 
    gcc main.o inputText.o outputText.o -o main 

main.o: main.c 
    $(CC) $(CFLAGS) main.c -o main.o 

inputText.o: inputText.c 
    $(CC) $(CFLAGS) inputText.c -o inputText.o 

outputText.o: outputText.c 
    $(CC) $(CFLAGS) outputText.c -o outputText.o 

Evet hedefin altında bir sekme boşluk olmalıdır ve benim make dosyasında bulunmaktadır.

Eğer main.o, inputText.o ve outputText.o gibi hedeflerden birini denediğimde işe yarayabilir ya da yapamam ya da yapamam.

DÜZENLEME: Sadece rastgele yapmak çalıştıran ve aşağıdaki komutu kullanarak o dosyayı anlatmaya çalıştı :

make -f make 

Bu işler ama neden sadece iş yapmak yazarak etmiyor?

+0

Burada sahip olduğunuz şeylerle tekrar çalışılamıyor. Dosyanızda komik karakterler olmadığından emin olun (burada bulunanları yapıştırın ve boşlukları sekmelerle değiştirin). – Mat

+4

Makefile, 'make' değil, 'makefile' olarak adlandırılmalıdır. –

+0

@PaulR Ahh bunu düzeltdi. Notlarımda makefile olarak adlandırılması gerektiği pek iyi açıklanmadı. – Dean

cevap

16

Makefile, make değil, makefile olarak adlandırılmalıdır. Makefile'yi istediğiniz gibi arayabileceğinizi unutmayın, ancak bulduğunuzda, makefile adını belirtmek için make ile -f seçeneğine ihtiyacınız vardır. makefile'un varsayılan adını kullanmak hayatı kolaylaştırır.

İlgili konular