gcc适用于lex,但在硬盘上找不到libl.so

时间:2016-09-21 04:13:21

标签: gcc hyperlink option lex

我可以像下面这样使用lex:

  

lex my.l&& gcc lex.yy.c -ll

没问题,有效。从gcc链接选项,我猜有一个名为libl.so的库,它指示lex运行时库。

cd /
find ./ -name "libl.so"

但我没有得到任何查找结果。那么真的有一个名为libl.so的库吗?什么是gcc用来链接lex的真实库名?

谢谢!

2 个答案:

答案 0 :(得分:2)

这取决于你如何安装(f)lex;库可能是归档而不是共享对象(即libl.a)。 Flex通常还提供libfl.alibfl.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。