Cygwin에서 컴파일:이 범위에서 'EOF'가 선언되지 않았으며 CentOS에서 제대로 컴파일됩니다.

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

  •  21-12-2019
  •  | 
  •  

문제

Cygwin에서 Linux 바인딩 애플리케이션을 컴파일하는 데 문제가 있습니다.

이 오류:

error: ‘EOF’ was not declared in this scope

다음 코드 조각으로 생성됩니다.

if (option == EOF) break;

CentOS에서 직접 컴파일하면 오류가 발생하지 않습니다.

다음은 make 파일이 전달한 g++ 매개변수입니다.

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

centOS의 GCC 버전:

 4.8.1 20130715

Cygwin의 GCC 버전

 4.8.2

Cygwin에서 일부 라이브러리가 누락된 것인지, 아니면 이것이 Cygwin의 제한 사항이므로 해결할 수 없는 것인지 궁금합니다.

도움이 되었습니까?

해결책

EOF 에 정의되어 있습니다 stdio.h / cstdio.일어날 가능성이 있는 일은 해당 헤더 중 하나를 포함하지 않는다는 것입니다. ~이다 예를 들어, iostream.표준 라이브러리 헤더는 다른 헤더도 포함되도록 허용되며 일부 구현에서는 iostream 헤더는 정확히 이 작업을 수행하지만 전부는 아닙니다.그것에 의존해서는 안됩니다.당신이 사용하는 경우 EOF, 자신의 코드에 적절한 헤더에 대한 명시적 포함을 추가하세요.(이 경우가 아닌 귀하의 코드가 아니더라도 소스 코드에서 필요한 수정은 동일합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top