📄 flex.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
6.29. Flex-2.5.31
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Chapter 6. 安装系统基础软件
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="sed.html" title="Sed-4.1.4">后退</a>
<p>
Sed-4.1.4
</p>
</li>
<li class="next">
<a accesskey="n" href="gettext.html" title="Gettext-0.14.3">前进</a>
<p>
Gettext-0.14.3
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="wrap" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="sect1">
6.29. Flex-2.5.31
</h1>
</div>
<div class="package" lang="zh_cn" xml:lang="zh_cn">
<p>Flex 能生成可以识别文本模式的程序。</p>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">预计编译时间:</span></strong> <span class="seg">0.1 SBU</span>
</div>
<div class="seg">
<strong><span class="segtitle">所需磁盘空间:</span></strong> <span class="seg">22.5 MB</span>
</div>
</div>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装依赖于:</span></strong> <span class="seg">Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed</span>
</div>
</div>
</div>
</div>
<div class="installation" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h2 class="sect2">
6.29.1. 安装 Flex
</h2>
</div>
<p>
Flex 有几个已知的bug,下面的命令可以修正它们:</p>
<pre class="userinput"><kbd class="command">patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch</kbd></pre>
<p>
GNU autotools 会检测到 Flex 的源代码已经被上面的补丁修改过了,于是将会尝试更新相应的手册页。在许多系统上这个操作会失败,而原本的手册页并不需要修改,所以要明确指示不要更新:</p>
<pre class="userinput"><kbd class="command">touch doc/flex.1</kbd></pre>
<p>
为编译 Flex 做准备: </p>
<pre class="userinput"><kbd class="command">./configure --prefix=/usr</kbd></pre>
<p>编译软件包:</p>
<pre class="userinput"><kbd class="command">make</kbd></pre>
<p>
要测试结果,请运行: <strong class="userinput"><tt>make check</tt></strong>
</p>
<p>
安装软件包:
</p>
<pre class="userinput"><kbd class="command">make install</kbd></pre>
<p>
一些程序试图在 <tt class="filename">/usr/lib</tt> 下面寻找 <tt class="filename">lex</tt> 库,可以创建一个符号链接来满足要求: </p>
<pre class="userinput"><kbd class="command">ln -s libfl.a /usr/lib/libl.a</kbd></pre>
<p>
一些程序并不知道 <span><strong class="command">flex</strong></span> 而是试图寻找 <span><strong class="command">lex</strong></span> 程序(flex是实现lex功能的另一种也是更好的选择)。为了满足少数一些程序的需要,我们将创建一个 <tt class="filename">lex</tt> 脚本,这个脚本调用 <tt class="filename">flex</tt> 并通过它来模仿
<span><strong class="command">lex</strong></span> 的输出文件命名惯例:</p>
<pre class="userinput"><kbd class="command">cat > /usr/bin/lex << "EOF"
<tt class="literal">#!/bin/sh
# Begin /usr/bin/lex
exec /usr/bin/flex -l "$@"
# End /usr/bin/lex</tt>
EOF
chmod 755 /usr/bin/lex</kbd></pre>
</div>
<div class="content" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="contents-flex" name="contents-flex"></a>
<h2 class="sect2">
6.29.2. Flex 的内容 </h2>
</div>
<div class="segmentedlist">
<div class="seglistitem">
<div class="seg">
<strong><span class="segtitle">安装的程序:</span></strong> <span class="seg">flex, lex, texi2pdf</span> </div>
<div class="seg">
<strong><span class="segtitle">安装的库文件:</span></strong> <span class="seg">libfl.a</span>
</div>
</div>
</div>
<div class="variablelist">
<h3>
<a id="id3324765" name="id3324765"></a>简要描述</h3>
<table border="0">
<col align="left" valign="top" />
<tbody>
<tr>
<td>
<a id="flex" name="flex"></a><span class="term"><span><strong class="command">flex</strong></span></span> </td>
<td>
<p>是一个用来生成识别文本的模式程序的工具。模式识别在很多程序中是非常有用,用户设置一些查询规则,然后flex可以生成一个查询程序。人们使用flex可以比亲自编写查询程序更便捷。</p> </td>
</tr>
<tr>
<td>
<a id="lex" name="lex"></a><span class="term"><span><strong class="command">lex</strong></span></span> </td>
<td>
<p>
在 <span><strong class="command">lex</strong></span> 仿真模式下运行 <span><strong class="command">flex</strong></span>的一个脚本。</p> </td>
</tr>
<tr>
<td>
<a id="flex-" name="flex-"></a><span class="term"><span><strong class="command">texi2pdf</strong></span></span> </td>
<td>
<p>从Texinfo文件创建PDF文件的脚本。</p> </td>
</tr>
<tr>
<td>
<a id="libfl.a" name="libfl.a"></a><span class="term"><tt class="filename">libfl.a</tt></span> </td>
<td>
<p><tt class="filename">flex</tt> 库 </p> </td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="navfooter">
<ul>
<li class="prev">
<a accesskey="p" href="sed.html" title="Sed-4.1.4">后退</a>
<p>
Sed-4.1.4
</p>
</li>
<li class="next">
<a accesskey="n" href="gettext.html" title="Gettext-0.14.3">前进</a>
<p>
Gettext-0.14.3
</p>
</li>
<li class="up">
<a accesskey="u" href="chapter06.html" title="Chapter 6. 安装系统基础软件">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>.
</li>
</ul>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -