/usr/bin/ld: 找不到 -lfl

NPK*_*NPK 11 libraries gcc

运行以下命令后:

g++ lex.yy.c -lfl

我收到以下错误:

/usr/bin/ld: cannot find -lfl

我该如何解决?

Gil*_*il' 11

lex.yy.clexC(和 C++)的词法分析器预处理器的默认输出文件名。该连接器ld)正在寻找一个名为libfl.so(如果动态链接;这将是libfl.a,如果静态链接)。这是由Flex生成的词法分析器所需的运行时库,Flex是一个 lex 实现。

如果您使用 生成lex.yy.c自己flex,请检查是否正确安装了 Flex。除了flex在您的路径中包含可执行文件之外,您还需要在库搜索路径中包含libfl.solibfl.alibfl_pic.a如果存在)(通常为/usr/lib/usr/local/lib,取决于 Flex 是否来自系统包)。如果 Flex 位于非标准位置,请使用以下命令指定库搜索路径-L

~/software/flex/bin/flex mylexer.l
g++ lex.yy.c -L ~/software/flex/lib -lfl
Run Code Online (Sandbox Code Playgroud)

  • 安装 flex-static 包解决了这个问题 (4认同)

小智 6

flex-devel.x86_64在我的 SciOs 发行版中安装该软件包对我有用。