我可以像下面这样使用lex:
lex my.l&& gcc lex.yy.c -ll
没问题,有效。从gcc链接选项,我猜有一个名为libl.so的库,它指示lex运行时库。
cd /
find ./ -name "libl.so"
但我没有得到任何查找结果。那么真的有一个名为libl.so的库吗?什么是gcc用来链接lex的真实库名?
谢谢!
答案 0 :(得分:2)
这取决于你如何安装(f)lex;库可能是归档而不是共享对象(即libl.a
)。 Flex通常还提供libfl.a
和libfl.so
如果您有debian或ubuntu系统,(f)lex库位于libfl-dev
包中,(在x86_64平台上)包含以下库:
/usr/lib/x86_64-linux-gnu/libfl.a
/usr/lib/x86_64-linux-gnu/libfl_pic.a
/usr/lib/x86_64-linux-gnu/libfl.so
/usr/lib/x86_64-linux-gnu/libl.a
以及其他一些文件。
答案 1 :(得分:1)
对于RHEL或Centos,您需要安装flex-devel以获取libfl.a和libl.a,以及bison-devel以获取liby.a。