gcc - 找不到 -ll collect2:错误:ld 返回 1 退出状态
问题描述
当我尝试编译在 cygwin 中使用lex.yy.c
生成的文件时,我遇到了类似的错误。lex helloworld.l
gcc lex.yy.c -ll
helloworld.l 包含
%%
[0-9]+ { printf("saw an integer:%s\n", yytext);}
[a-z]+ { printf("saw a lowercase character:%s\n", yytext);}
[A-Z]+ { printf("saw an uppercase character:%s\n", yytext);}
.|\n ;
%%
的输出gcc lex.yy.c -ll
是
/usr/lib/gcc/i686-pc-cygwin/10/../../../../i686-pc-cygwin/bin/ld: cannot find -ll
collect2: error: ld returned 1 exit status
请帮助我解决此错误并使其正常工作。谢谢!
解决方案
正如@rici所提到的
$ gcc lex.yy.c -lfl
$ ./a < helloworld.l
saw an integer:0
saw an integer:9
saw a lowercase character:printf
saw a lowercase character:saw
...
为什么 ?程序lex
属于flex
包,导入库是libfl.a
$ cygcheck -f /usr/bin/lex
flex-2.6.4-2
$ cygcheck -l flex | grep a$
/usr/lib/libfl.a
推荐阅读
- python - 获取日期时间对象以打印为真实日期
- node.js - use copied library in another project
- sorting - Redis 对有序集进行排序
- reactjs - React - 呈现动态内容的正确方法?
- r - 管道到`signif()`时的奇怪行为
- php - 如何在 PHP 中使用 regex 或 preg_match 将字符串的确切部分提取为变量?
- c++ - 如何正确混合调试和发布涉及 std::string 的二进制文件?
- html - 如何让 dir="rtl" 与 bootstrap 4.3.1 一起使用?
- android - 为什么roboto bold 在android 上看起来如此“大胆”(700)?
- python - 如何在 url 中传递字典类型对象?