2011-02-10 25 views
5

Mam plik make, który zawiera kod:Brak cele określone i nie makefile znaleźć

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 

Kiedy piszę to na polecenie powłoki:

$make 

mam to:

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

Jak to naprawić?

+0

Czy uruchamiasz polecenie make w katalogu, w którym znajduje się plik Makefile? – Mahesh

+0

... i jest plik Makefile o nazwie "Makefile" (z dużym M)? –

+0

Jeśli zamiast wpisywać 'make', co otrzymasz po wpisaniu' ls -l'? –

Odpowiedz

14

Mmm ... pliki makefiles. Whee.

Wszystkie te spacje na początku linii. To muszą być zakładki. Lub Make sprawi, że pojawi się naprawdę niejasny błąd. Upewnij się, że są to zakładki i spróbuj ponownie.


Zobacz przycisk po lewej stronie klawiatury oznaczony "tab". Usuń spacje i naciśnij raz, aby wstawić znak tabulacji.


Wypróbuj make all. IIRC (kilka lat, odkąd musiałem posklejać plikami Makefile) większość marek będzie domyślnie all, ale być może twój nie jest.

Rozszerzenie nie ma znaczenia.


Holy Heck! Wszyscy jesteśmy Extra Dense (@bbum głównie tak)!

"Nie znaleziono pliku Makef" oznacza ... cóż .. że Make nawet nie widział pliku Makefile. Sugestie do zmiany nazwy pliku Makefile.m na Makefile są poprawne. Jak dobrze, cała tabulacja kontra spacja jest z pewnością trafna.

+0

Cześć, polecenie make w katalogu, w którym znajduje się plik Makefile, a jego nazwa to Makefile z M. jakkolwiek to jest "tab" "? – Malloc

+0

Próbowałem usunąć białe spacje, zawsze miałem ten sam błąd wyjściowy :( – Malloc

+1

@Malek: Upewnij się, że twój edytor jest ustawiony na użycie "prawdziwych kart" lub "twardych kart", a nie spacji. Jeśli używasz Cocoa- edytor oparty na Xcode, naciśnij ctrl-q, a następnie tab, aby zawsze wstawiać prawdziwą kartę –

4

i nie znaleziono makefile

Jeśli wystarczy wpisać make bez argumentów lub make all, make będzie szukał pliku o nazwie Makefile w bieżącym katalogu. Jeśli go tam nie ma, dostaniesz błąd, który zobaczyłeś. make nie będzie szukać w podkatalogach dla Makefile ani nie zaakceptuje pliku o nazwie Makefile.m.

+1

Malek nie określił wersji Make, ale GNUMake szuka 'GNUmakefile', następnie 'makefile ", wreszcie" Makefile ". – Beta

0

Re:
$ Bądź Marka: * Brak cele określone i nie znaleziono żadnych makefile. Zatrzymać.

Po prostu miałem ten błąd i odkryłem, że rozszerzenie Makefile (none) zostało przekonwertowane na .bat gdzieś po linii.

0

Właśnie spędziłem kilka szalenie frustrujących chwil z tym błędem. Mój błąd nie był aż tak subtelny: nazwałem makefile MakeFile not Makefile, więc nawet użycie polecenia -f Makefile (wymuszenie nazwy pliku Makefile) nadal powodowało, że nie został znaleziony, ponieważ był to MakeFile, a nie Makefile.