C:\Users\Zhq27>gcc one.c one.tab.c one.tab.h one.l:5:10: fatal error: y.tab.h: No such file or directory #include "y.tab.h" ^~~~~~~~~ compilation terminated. one.tab.c: In function 'yyparse': one.tab.c:602:16: warning: implicit declaration of function 'yylex' [-Wimplicit-function-declaration] # define YYLEX yylex () ^~~~~ one.tab.c:1247:16: note: in expansion of macro 'YYLEX' yychar = YYLEX; ^~~~~ one.tab.c:1417:7: warning: implicit declaration of function 'yyerror'; did you mean 'yyerrok'? [-Wimplicit-function-declaration] yyerror (YY_("syntax error")); ^~~~~~~ yyerrok one.y: At top level: one.y:36:6: warning: conflicting types for 'yyerror' void yyerror(const char *s) { ^~~~~~~ one.tab.c:1417:7: note: previous implicit declaration of 'yyerror' was here yyerror (YY_("syntax error"));
时间: 2024-03-19 10:39:54 浏览: 174
这个错误提示是在编译时出现的,它告诉我们在编译的过程中找不到 "y.tab.h" 这个头文件。这个文件是由 bison 或者 yacc 工具生成的,它包含了语法分析器所需的一些信息。你需要确保在编译之前先使用 bison 或者 yacc 生成这个文件。你可以尝试在命令行中输入 "bison -d one.y",它会生成 "y.tab.c" 和 "y.tab.h" 这两个文件。然后再使用 "gcc one.c one.tab.c one.l" 进行编译。同时还需要注意的是,你的代码中存在一些隐式函数声明的问题,可以尝试将相关函数的声明加入到头文件中或者使用 -Wno-implicit-function-declaration 去掉警告。
阅读全文