Parece que você está tentando compilar um projeto que usa arquivos de cabeçalho do kernel do Linux, um driver de kernel ou outro projeto que usa estruturas de dados e APIs do kernel do Linux. O desenvolvimento do kernel é um caso de uso muito específico que não é coberto pelo essencial para a construção ,porissonãoésurpresaqueainstalaçãoObuild-essentialnãoestádisponibilizandoautomaticamenteessesarquivosdecabeçalhoparavocê.
Parainstalarestesarquivosdecabeçalho,vocêdevecertificar-sedequeos
Mesmodepoisdeinstaladoscorretamente,essesarquivosdecabeçalhonãosãoinstaladosnocaminhodeinclusãodosistemapadrão(nodiretório/usr/include
)porquenãodevemserincluídosporbibliotecasdehosteaplicativos.Emvezdisso,elessãoinstaladosemumdiretóriocomversãoespecíficaparacadacópiainstaladadokernel.
AmaneiracanônicadelocalizarosarquivosdecabeçalhodokerneldoLinuxassimqueelessãoinstaladosparasuaversãodokerneléprocurarem/lib/modules/$(uname-r)/build/include
,onde$(uname-r)
éumasubstituiçãodeshellparaaversãoatualdokernel:
$ls/lib/modules/$(uname-r)/build/include/
Depoisdeterasseguradoqueopacotedearquivosdecabeçalhoestáinstalado,vocêteráqueapontarseusistemadecompilaçãoparaocaminhodeinclusãodokerneldoLinux.SevocêestivertrabalhandocomumprojetobaseadonoMakefileouAutomake,issopodeserfeitocomumavariávelCPPFLAGS
noMakefiledoprojeto:
CPPFLAGS=-I/lib/modules/$(shelluname-r)/build/include
Agora,sevocêestáconstruindoummódulodokernelLinux,existemmaneirasespecíficasdeconfiguraroseuprojetoMakefileparaintegrar-seaosistemadecompilaçãodokerneldoLinux,vejaporexemplo
O Guia de programação do módulo de kernel do Linux - Makefile para o módulo do kernel Linux?