Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
visual C+中的编译错误+;_C_Visual C++_Compiler Errors_Yacc - Fatal编程技术网

visual C+中的编译错误+;

visual C+中的编译错误+;,c,visual-c++,compiler-errors,yacc,C,Visual C++,Compiler Errors,Yacc,我正在使用VisualStudio2010构建C项目。我的项目包含许多头文件、源文件和解析器。它使用lex和bason文件。我在编译过程中遇到了一个错误,下面是 abc.y:error C2065: 'INPUT' : undeclared identifier 我尝试了我想要的解决方案,包括 #define WIN32_WINNT >= 0x0501 在我的主.c文件中包含任何头文件之前。我无法消除此错误。你能告诉我这个错误的原因吗 编辑 显示错误的代码片段是: list

我正在使用VisualStudio2010构建C项目。我的项目包含许多头文件、源文件和解析器。它使用
lex
bason
文件。我在编译过程中遇到了一个错误,下面是

abc.y:error C2065: 'INPUT' : undeclared identifier 
我尝试了我想要的解决方案,包括

#define WIN32_WINNT >= 0x0501
在我的主.c文件中包含任何头文件之前。我无法消除此错误。你能告诉我这个错误的原因吗

编辑

显示错误的代码片段是:

     list_Cons(0, list_List((POINTER)INPUT)

令人惊讶的是,如果我将输入更改为INPUT1,我会得到相同的错误。改变是坚忍的编译器不能处理**文件。为此,您需要一个yacc/bison程序,该程序未随Visual Studio 2010附带。

您可能会阅读和阅读

#定义WIN32_WINNT>=0x0501
不起作用。您应该尝试改用
#define WIN32_WINNT 0x0501


另外,检查您是否真的包括我自己使用的winuser.h,它可以生成MSVC项目以及其他构建类型。您可以告诉它a.y超出了C/C++文件,它将指示MSVC调用任何必要的外部工具来预处理非C/C++部分。

这就是您要找的吗。如果看不到代码,就说不出更多。失败的代码是从哪里来的?它是否在
yacc
生成的文件中?在这种情况下,您必须查阅yacc的手册。我认为VS2010没有关于如何编译
*.y
的内置规则,因此问题一定在其他地方。我已经生成了yaac和lex文件使用lex和bison生成的相应头文件和源文件。我正在把这些文件编译在一起。@ TeTNA:发布的错误信息看起来仍然是试图用C++编译器编译“abc”。如果您已经有了yacc输出,您可能应该确保这些文件包含在项目中,并从项目中删除abc.y。实际上,我也删除了这些文件。我正在尝试。我得到了同样的错误。@aschepler可能是从abc.y生成abc.c,而c文件中有#行指令,这些指令引用了abc.y