我遇到了在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的一个限制而无法解决。
答案 0 :(得分:4)
EOF
在stdio.h
/ cstdio
中定义。可能发生的事情是您不包含其中一个标题,但 包括,例如iostream
。允许使用标准库标题来引入其他标题,以及一些实现' iostream
标题就是这样做的,但不是全部。你不应该依赖它。如果您使用EOF
,请在您自己的代码中为相应的标头添加显式包含。 (即使它不是您的代码,在这种情况下也不是,源代码中所需的修改是相同的。)