O GCC fornece o erro porque não consegue encontrar o (s) arquivo (s) de cabeçalho que você inclui. Você deveria:
- verifique se o caminho não está na pasta
raw1394.c
, porque você precisa usar aspas em vez de<>
: so#include "linux/module.h"
(pode ser o caso se você não quiser usar o próprio kernel arquivos de cabeçalho) - Verifique o caminho do seu compilador se existe um arquivo chamado
linux
com os arquivos de cabeçalho nele. Você provavelmente está perdendo os cabeçalhos do Linux.
Em segundo lugar, os makefiles são usados para automatizar o processo de compilação (pois isso geralmente envolve várias instruções e / ou instruções diferentes para destinos diferentes). Mas você ainda precisará dos comandos gcc corretos em seu makefile. Então, o makefile (básico) deve ficar assim (muitas extensões e flexibilidade podem ser adicionadas a ele, leia mais sobre makefiles se você quiser fazer isso):
CC=gcc
CFLAGS=-Wall -c
raw: raw1394.c
TAB $(CC) $(CFLAGS) raw1394/raw1394.c
all:
clean:
TAB rm -rf raw1394/*.o
Observe que intenções específicas são usadas em Makefiles. Portanto, coloquei TAB no código onde deveria haver uma tabulação (vários espaços NÃO funcionarão).
Digitar make raw
no diretório correto na linha de comando executará automaticamente o alvo bruto no Makefile.