Pergunta

Estou tendo problemas ao compilar aplicativos vinculados ao Linux no Cygwin.

Esse erro:

error: ‘EOF’ was not declared in this scope

é produzido pelo seguinte trecho de código

if (option == EOF) break;

Compilar isso diretamente no CentOS não produz erros.

Estes são os parâmetros g++ passados ​​pelo arquivo make:

-g -O0 -Wall -Wextra -std=gnu++11

Versão GCC no centOS:

 4.8.1 20130715

Versão GCC no Cygwin

 4.8.2

Estou me perguntando se estou faltando algumas bibliotecas no Cygwin ou se isso é apenas uma limitação do Cygwin e não pode ser resolvido.

Foi útil?

Solução

EOF é definido em stdio.h / cstdio.O que provavelmente está acontecendo é que você não está incluindo um desses cabeçalhos, mas são incluindo, por exemplo, iostream.Cabeçalhos de biblioteca padrão podem fazer com que outros cabeçalhos também sejam incluídos, e algumas implementações iostream os cabeçalhos fazem exatamente isso, mas não todos.Você não deveria confiar nisso.Se você usar EOF, adicione uma inclusão explícita para o cabeçalho apropriado em seu próprio código.(Mesmo que não seja o seu código, o que não é neste caso, a modificação necessária no código-fonte é a mesma.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top