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