2011-02-10 21 views
5

Tôi có một làm cho tập tin có chứa mã này:Không có mục tiêu cụ thể và không có makefile tìm thấy

all: main.o Etudiant.o 
    gcc -lobjc -o program main.o Etudiant.o 
main.o:main.m Etudiant.h 
    gcc -c main.m 
Etudiant.o:Etudiant.m Etudiant.h 
    gcc -c Etudiant.m 

Khi tôi viết những dòng này trong lệnh shell:

$make 

Tôi nhận điều này:

make: **** No targets specified and no makefile found. Stop. 

Làm cách nào để khắc phục sự cố này?

+0

Bạn có đang chạy lệnh make trong thư mục có makefile không? – Mahesh

+0

... và là makefile có tên "Makefile" (với một chữ M)? –

+0

Nếu thay vì gõ 'make', bạn sẽ nhận được gì khi gõ' ls -l'? –

Trả lời

14

Mmm ... makefiles. Whee.

Tất cả khoảng trắng đó ở đầu dòng. Đó phải là các tab. Hoặc Make sẽ chặn một lỗi thực sự mơ hồ. Đảm bảo rằng đó là các tab và thử lại.


Xem nút ở bên trái của bàn phím có nhãn "tab". Xóa các dấu cách và nhấn một lần để chèn một ký tự tab.


Hãy thử make all. IIRC (đã được một vài năm kể từ khi tôi đã phải muck với makefiles) hầu hết làm cho sẽ mặc định để all, nhưng có lẽ bạn không phải là.

Tiện ích không quan trọng.


Holy Heck! Tất cả chúng ta đều dày đặc hơn (@bbum chủ yếu là như vậy)!

"không tìm thấy Makefile" có nghĩa là ... well .. that Make thậm chí không nhìn thấy makefile. Các đề xuất đổi tên Makefile.m thành Makefile là chính xác. Đồng thời, toàn bộ tab so với điều khoảng trắng chắc chắn là thích hợp.

+0

Xin chào, lệnh make trong thư mục nơi makefile và tên của nó là Makefile với M. tuy nhiên "tab" là gì? – Malloc

+0

tôi đã cố xóa các khoảng trống, tôi luôn gặp lỗi đầu ra: ( – Malloc

+1

@Malek: Và đảm bảo rằng trình chỉnh sửa của bạn được đặt để sử dụng "tab thực" hoặc "tab cứng", không phải dấu cách. dựa trên trình soạn thảo như Xcode, nhấn ctrl-q, sau đó tab để luôn chèn một tab thực –

4

và không có makefile tìm thấy

Nếu bạn chỉ cần gõ make không có đối số hoặc make all, make sẽ tìm kiếm một tập tin gọi Makefile trong thư mục hiện hành. Nếu nó không có ở đó, bạn sẽ gặp lỗi bạn thấy. make sẽ không tìm trong thư mục con cho Makefile cũng như không chấp nhận tệp có tên Makefile.m.

+1

Malek chưa chỉ định phiên bản Make, nhưng GNUMake tìm kiếm 'GNUmakefile', sau đó 'makefile ', cuối cùng' Makefile '. – Beta

0

Re:
$ Hãy Make: * Không có mục tiêu cụ thể và không có makefile được tìm thấy. Dừng lại.

Tôi vừa gặp lỗi này và thấy rằng phần mở rộng Makefile (none) đã được chuyển thành .bat ở đâu đó dọc theo dòng.

0

Chỉ cần dành một vài khoảnh khắc điên rồ với lỗi này. Sai lầm của tôi không phải là tất cả những điều tinh tế: Tôi đặt tên MakeFile makefile không Makefile, vì vậy ngay cả khi sử dụng lệnh makefile -f (buộc tên makefile) vẫn dẫn đến không tìm thấy, bởi vì nó là MakeFile, chứ không phải Makefile.

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