Compilando en Cygwin:'EOF' no fue declarado en este ámbito, se compila bien en CentOS

StackOverflow https://stackoverflow.com//questions/23038295

  •  21-12-2019
  •  | 
  •  

Pregunta

Tengo problemas al compilar aplicaciones vinculadas a Linux en Cygwin.

Este error:

error: ‘EOF’ was not declared in this scope

es producido por el siguiente fragmento de código

if (option == EOF) break;

Compilar esto en CentOS directamente no produce errores.

Estos son los parámetros de g++ pasados ​​por el archivo make:

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

Versión de GCC en centOS:

 4.8.1 20130715

Versión GCC en Cygwin

 4.8.2

Me pregunto si simplemente me faltan algunas bibliotecas en Cygwin o si esto es solo una limitación de Cygwin y no se puede resolver.

¿Fue útil?

Solución

EOF se define en stdio.h / cstdio.Lo que probablemente sucede es que no estás incluyendo uno de esos encabezados, pero son incluyendo, por ejemplo, iostream.Se permite que los encabezados de biblioteca estándar hagan que también se incluyan otros encabezados, y algunas implementaciones iostream los encabezados hacen exactamente esto, pero no todo.No deberías confiar en ello.Si utiliza EOF, agregue una inclusión explícita para el encabezado apropiado en su propio código.(Incluso si no es su código, que no lo es en este caso, la modificación requerida en el código fuente es la misma).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top