Flex 및 Bison을 사용하여 C에서 프로젝트를 수행하고 있지만 컴파일하는 동안 오류가 발생했습니다. A_Sintactico.yy에서 yyerror 서브의C, Flex 및 Bison : 오류 : 'yyerror'의 충돌 유형
A_Sintactico.yy:186:6: error: conflicting types for ‘yyerror’
In file included from A_Sintactico.yy:3:0:
A_Lexico.l:15:8: note: previous declaration of ‘yyerror’ was here
extern yyerror(char*);
^
코드 : 여기
오류입니다 yyerror 서브의void yyerror(char* mens){
extern int numlin;
fprintf(stderr, "Error sintactico en la linea %i %s\n", numlin, mens);
}
코드 일어나고 무엇
extern yyerror(char*);
A_Lexico.l
에서? 감사!
나는 당신의 솔루션을 시도하고 작동하지 않습니다 ... void yyerror (const char *); extern 문제를 제거하는 것은 동일하지만 함수를 변경하면 더 많은 문제가 발생합니다. – juanjo
@juanjo : 선언과 정의가 동일해야합니다. 그들은 모두'void yyerror (const char * mens)'이어야합니다. 나는 그것을 명확하게하기 위해 답을 업데이트 할 것이다. – rici