2012-05-14 20 views
5

Jestem nowy dla deweloperów sterowników linux.Wydaj komendy "polecenia zaczynają się przed pierwszym celem" błąd

Piszę helloworld driver.

oto kod:

#define MODULE 
#define __KERNEL__ 
#include <module.h> 
int init_module() 
{ 
return 0; 
} 

void cleanup_module() 
{ 
return; 
} 

i tu jest makefile:

CC=gcc 
    MODFLAGS:= -O3 -Wall -DLINUX 
    module.o: module.c 
    $(CC) $(MODFLAGS) -c module.c 

Ale kiedy biegnę zrobić komenda Mam następujący: makefile: 3: * „Polecenia Rozpocznijmy przed pierwszym celem "błąd

co jest nie tak?

+1

Czy te spacje znajdują się na lewym marginesie pliku Makefile? Lub karty? – Beta

+0

W pliku Makefile znajdują się zakładki – user1284151

Odpowiedz

9

Usuń wiodące karty w makefile, z każdej linii, która nie jest komenda:

CC=gcc 
MODFLAGS:= -O3 -Wall -DLINUX 
module.o: module.c 
    $(CC) $(MODFLAGS) -c module.c 
1

Mimo to nie miało dla ciebie, ja spotkałem się ten sam komunikat o błędzie z innym powód. Odpowiadam więc również tutaj, aby pomóc ludziom w przyszłości, gdy napotkają komunikat o błędzie, ale powód nie jest tak oczywisty jak w twoim przypadku.

Oto minimalne przykład sprowokować wystąpienie błędu przez jedynie o pliku ze znakiem równości w nazwie pasuje $(wildcard) (oczywiście tutaj w celach demonstracyjnych ja pasującymi tylko nazwy plików z =) skreśla się. Ściśle mówiąc nie ma znaczenia, jakiej metody używasz do pobierania nazw zmiennych $(FILES).

FILES := $(wildcard ./*=*) 

.PHONY: all 

define foo 
all: something-$(1) 
something-$(1): $(1) 
    cat $$^ > [email protected] 
endef 

$(foreach goal,$(sort $(FILES)),$(eval $(call foo,$(goal)))) 

Problem pojawia się w sposobie ekspansji - w tym przypadku dzieje się tak tylko z powodu makra.

W każdym razie, byłem zaskoczony, kiedy skończyłem z tym komunikatem o błędzie, podczas gdy sam plik make - również zgodnie z kontrolą wersji - nie zmienił się. Dopóki nie przyszło mi do głowy, że musi istnieć jakaś przyczyna problemu. Niech pomoże przyszłej osobie w poszukiwaniu odpowiedzi.

Powiązane problemy