Ошибка компиляции в Visual C ++ - PullRequest
0 голосов
/ 06 июля 2011

Я использую Visual Studio 2010 для сборки C-проекта.Мой проект содержит несколько заголовочных файлов, исходный файл и парсеры.Он использует lex и bason файлы.Я получаю единственную ошибку во время компиляции и следующее

abc.y:error C2065: 'INPUT' : undeclared identifier 

Я пробовал решения, которые мне нравятся, включая

#define WIN32_WINNT >= 0x0501

в моем файле main.c перед включениемлюбой из заголовочных файлов. Я не могу избавиться от этой ошибки.Не могли бы вы сообщить мне, что может быть причинами этой ошибки?

РЕДАКТИРОВАТЬ

Фрагмент кода, который показывает ошибку:

     list_Cons(0, list_List((POINTER)INPUT)

Удивительная вещьв том, что если я изменяю INPUT на INPUT1, я получаю ту же ошибку.Стоически менять.

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Предположительно, вы читаете это и это .

#define WIN32_WINNT >= 0x0501 не будет работать. Вы должны попробовать использовать #define WIN32_WINNT 0x0501.

Также проверьте, действительно ли вы #include winuser.h

0 голосов
/ 06 июля 2011

Для себя я использую CMake , который может генерировать проекты MSVC наряду с другими типами сборки.Вы можете сказать ему, что .y должен обрабатываться вместе с файлами C / C ++, и он будет инструктировать MSVC вызывать любые внешние инструменты, необходимые для предварительной обработки не-C / C ++ частей.

0 голосов
/ 06 июля 2011

Компилятор C ++ не может обработать файл * .y. Для этого вам нужна программа yacc / bison, которая не входит в состав Visual Studio 2010.

...