2012-03-27 26 views
14

tôi tiếp tục nhận được lỗi này:make: *** Không có quy tắc để thực hiện mục tiêu `tất cả '. Dừng

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

Mặc dù làm cho tập tin của tôi trông như thế này:

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 

Có cần có một không gian tab bên dưới mục tiêu và có trong làm cho tập tin của tôi.

Tôi có thể làm cho nó hoạt động nếu tôi thử một trong các mục tiêu như main.o, inputText.o và outputText.o nhưng không thể xây dựng hoặc tất cả.

EDIT: tôi đã cố gắng chỉ là ngẫu nhiên chạy thực hiện và nói cho nó tập tin bằng cách sử dụng lệnh sau:

make -f make 

này hoạt động nhưng tại sao không chỉ cần gõ làm cho công việc?

+0

Không thể repro với những gì bạn có ở đây. Hãy chắc chắn rằng bạn không có các ký tự vui trong tệp của bạn (sao chép dán những gì bạn có ở đây và thay thế dấu cách bằng các tab). – Mat

+4

Makefile của bạn nên được đặt tên là 'makefile', không phải' make'. –

+0

@PaulR Ahh đã sửa nó. Nó không được giải thích rõ ràng trong các ghi chú của tôi rằng nó phải được gọi là makefile. – Dean

Trả lời

16

Your makefile lý tưởng nên được đặt tên là makefile, không phải make. Lưu ý rằng bạn có thể gọi makefile của mình bất cứ thứ gì bạn thích, nhưng khi bạn tìm thấy, bạn cần có tùy chọn -f với make để chỉ định tên của makefile. Sử dụng tên mặc định là makefile chỉ làm cho cuộc sống dễ dàng hơn.

Các vấn đề liên quan