Em ambos os casos, esses não são principalmente avisos que quebram a compilação.
Para a compilação do kernel:
error: 'struct run_vap' has no member named 'beacon_mbuf'
o compilador informa que o código está tentando acessar algo que não está lá. Isso pode ter muitas razões, mas geralmente sugere que o código está quebrado. Talvez você esteja tentando compilar um módulo que dependa de uma API interna mais nova / mais antiga do kernel (ou seja, está usando outra definição de estruturas do que o resto do kernel).
warning: passing argument 1 of 'm_freem' from incompatible pointer type
é frequentemente um erro de programação (ou seja, de fato, passar algo mais como argumento do que o esperado) ou um operador de elenco ausente.
cc1: warnings being treated as errors
é causado por -Werror
nos sinalizadores do compilador, que informa ao compilador para tratar os avisos como erros. O que geralmente é uma boa ideia TM , na verdade (principalmente por causa das muitas vezes encontradas - "Mas compila, há apenas algumas advertências" atitude).
Para o outro problema:
csh.lo(.text+0xdba6): In function 'nlsclose':
: undefined reference to 'dl_iconv_close'
é na verdade um erro do link - a compilação foi (mais ou menos) bem, mas você não está fornecendo bibliotecas externas que fornecem alguns símbolos referenciados pelo código. Isso geralmente acontece quando você corretamente #include
arquivos de cabeçalho e, em seguida, esquece de dizer linker para realmente vincular contra essa biblioteca (geralmente a opção -l
).