struct ip_mreq desaparece quando compilando com -std = c99

votos
3

Em algumas das nossas caixas de linux compilar com gcc -std = c99 faz struct ip_mreq desaparecer (incluídos a partir netinet / in.h)

Existe alguma outra interface que devemos usar?

Publicado 19/05/2009 em 16:22
fonte usuário
Em outras línguas...                            


3 respostas

votos
4

Tente --std = gnu99.

O padrão para GCC é '--std = gnu89', que significa C89 com extensões GNU. Ao selecionar '--std = c99' você está permitindo C99, mas desativando as extensões GNU. '--std = gnu99' irá selecionar suporte tanto C99 e extensões GNU, dando-lhe o melhor dos dois mundos.

Respondeu 21/05/2009 em 16:18
fonte usuário

votos
0

Eu estou tendo o mesmo problema. Tudo compila bem usando gcc quando eu não fornecem "-std = c99", mas quando a bandeira está incluído, o compilador falhar dizendo que o campo com o tipo de 'struct ip_mreq' "tem tipo incompleto."

Este é um problema desde que eu sou dependente de algumas características C99.

Respondeu 21/05/2009 em 16:17
fonte usuário

votos
0

Eu não acho que há uma outra interface de pré-c99. Você pode ser capaz de usar isso com -std=c99se você adicionar o seguinte no topo da sua fonte (s):

#define __EXTENSIONS__

mas a melhor maneira é provavelmente

#define _XOPEN_SOURCE

Por favor note que eu não confirmaram.

Respondeu 19/05/2009 em 18:25
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more