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

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

运行以下命令后:

g++ lex.yy.c -lfl

我收到以下错误:

/usr/bin/ld: cannot find -lfl

我该如何解决?

答案1

lex.yy.c是默认输出文件名lex,C(和 C++)的词法分析器预处理器。这连接器( ld) 正在查找名为的文件libfl.so(如果是动态链接;如果libfl.a是静态链接则为)。这是由生成的词法分析器所需的运行时库柔性,一个 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

答案2

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

相关内容