Pular para o conteúdo

/usr/include/netinet/tcp.h:89:11: error: duplicate member ‘th_off’

Responder tópico
  • Denunciar
  • Indicar

1. /usr/include/netinet/tcp.h:89:11: error: duplicate member ‘th_off’

Enviado em 19/06/2017 - 09:50h

Bom pessoal, estou com esse problema no meu ambiente e não faço a minima ideia do que seja. Ja procurei na net mas não achei nada. Segue os logs:
09:11:41 **** Incremental Build of configuration Debug for project lib_conexao ****
make all
Building file: ../conexao.c
Invoking: GCC C Compiler
gcc -m32 -O0 -g3 -Wall -fPIC -c -fmessage-length=0 -MMD -MP -MF"conexao.d" -MT"conexao.o" -o"conexao.o" "../conexao.c"
In file included from ../conexao.h:9:0,
from ../conexao.c:2:
/usr/include/netinet/tcp.h:89:11: error: duplicate member ‘th_off’
u_int8_t th_off:4; /* data offset */
^
/usr/include/netinet/tcp.h:90:11: error: duplicate member ‘th_x2’
u_int8_t th_x2:4; /* (unused) */
^
subdir.mk:18: recipe for target 'conexao.o' failed
make: *** [conexao.o] Error 1

09:11:42 Build Finished (took 127ms)
Estou usando o eclipse para compilar e rodar. Uso o xubuntu 16.04

Responder tópico

2. Re: /usr/include/netinet/tcp.h:89:11: error: duplicate member ‘th_off’

Enviado em 19/06/2017 - 09:57h

O compilador apontou erro por membro duplicado, parece ser problema de falta de guardas. Você poderia postar os arquivos conexão.h e conexão.c?

3. Re: /usr/include/netinet/tcp.h:89:11: error: duplicate member ‘th_off’

Enviado em 19/06/2017 - 10:14h

O bloco que define esses membros tem a seguinte cara (linhas 84 a 91 do arquivo tcp.h):

# if __BYTE_ORDER == __LITTLE_ENDIAN
u_int8_t th_x2:4; /* (unused) */
u_int8_t th_off:4; /* data offset */
# endif
# if __BYTE_ORDER == __BIG_ENDIAN
u_int8_t th_off:4; /* data offset */
u_int8_t th_x2:4; /* (unused) */
# endif
Parece, portanto, que as macros/constantes __BYTE_ORDER, __LITTLE_ENDIAN e __BIG_ENDIAN estão todas definidas com o mesmo valor, o que faz com que os dois blocos sejam compilados ao mesmo tempo (o que não deveria ocorrer).

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder