<< Back to shouce.jb51.net

6.29. Flex-2.5.31

Flex 软件包包含一个能生成识别文本模式的程序的工具。

预计编译时间: 0.1 SBU
所需磁盘空间: 22.5 MB
安装依赖于: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed

6.29.1. 安装 Flex

Flex 有几个已知的 bug ,下面的命令可以修正它们:

patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch

GNU autotools 会检测到 Flex 的源代码已经被上面的补丁修改过了,于是将会尝试更新相应的手册页。在许多系统上这个操作会失败,而原本的手册页并不需要修改,所以要明确指示不要更新:

touch doc/flex.1

为编译 Flex 做准备:

./configure --prefix=/usr

编译软件包:

make

要测试结果,请运行:make check

安装软件包:

make install

一些程序试图在 /usr/lib 下面寻找 lex 库,可以创建一个符号链接来满足要求:

ln -sv libfl.a /usr/lib/libl.a

一些程序并不知道 flex 而是试图寻找 lex 程序(flex 是实现 lex 功能的另一种也是更好的选择)。为了满足少数一些程序的需要,我们将创建一个 lex 脚本,这个脚本调用 flex 并通过它来模仿 lex 的输出文件命名惯例:

cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex

exec /usr/bin/flex -l "$@"

# End /usr/bin/lex
EOF
chmod -v 755 /usr/bin/lex

6.29.2. Flex 的内容

安装的程序: flex, lex
安装的库文件: libfl.a

简要描述

flex

是一个用来生成识别文本的模式程序的工具。模式识别在很多程序中是非常有用,用户设置一些查询规则,然后 flex 可以生成一个查询程序。人们使用 flex 可以比亲自编写查询程序更便捷。

lex

lex 仿真模式下运行 flex 的一个脚本

libfl.a

flex