Этот вопрос похож на этот , но для yyparse, а не yylex.
Я боролся с этим часами! Я хочу вызвать yyparse из программы на C (на самом деле, на C ++, но в итоге я использовал старый flex / bison, а не более новые для woops C ++ (даже не знал, что версии C ++ вообще существуют)). Единственная ошибка в том, что 'yyparse' was not declared in this scope
. Я попытался определить переменную как глобальную, но, похоже, она не работает.
В файле Flex я пробовал:
extern "C" {
int yyparse();
}
и это в файле Bison:
extern int yyparse();
но он ничего не сделал.
Итак .. Я думаю, что я неправильно связываюсь. Проблема в том, что я использую Qt, который автоматически создает файл make, поэтому я не могу редактировать его без повторного перезаписи. Есть ли способ исправить проблему без изменения ссылки? Если нет, то как сделать связывание?