我正在尝试运行 lexx 和 yacc 程序,但出现以下错误:
/usr/bin/ld: cannot find -ly
collect2: error: ld returned 1 exit status
请告诉我应该添加哪些库?
你能liby.a
在/lib
目录中找到吗?如果您没有该文件,您可以使用apt-file liby.a
它来查找包含它的包。就我而言,apt install libbison-dev
有效。
我猜这个问题是你使用的 yacc 版本不是旧的 AT&T yacc,它不附带 liby(-ly
你有)。因此,您需要-ly
从命令行中删除该选项,并提供您自己的main
and实现yyerror
。
哪个版本的 yacc 和 lex 有“-ly”参数?我在大学里用过这个命令:
gcc gram.c gram.h sem.c -ly -ll 或 cc gram.c gram.h sem.c -ly -ll
并且有效!但是在我家 komputer 不工作..