Linux源码编译bison和flex

分类: 365bet亚洲官网 2025-09-15 03:47:11 作者: admin

GNU Bison 是一个通用的解析器生成器,它可以将注释的无上下文语法转换为使用 LALR(1) 解析表的确定性 LR 或广义 LR (GLR) 解析器。Bison 还可以生成 IELR(1) 或规范 LR(1) 解析表。一旦您熟练使用 Bison,您可以使用它开发广泛的语言解析器,从简单的桌面计算器中使用的解析器到复杂的编程语言。

在Qt源码编译中也会用到这两个软件。

编译环境:Linux kali64 4.9.0-kali3-amd64 #1 SMP Debian 4.9.18-1kali1 (2017-04-04) x86_64 GNU/Linux

gcc: gcc version 6.3.0 20170406 (Debian 6.3.0-12)

bison下载:http://mirrors.ustc.edu.cn/gnu/bison/bison-3.1.tar.xz

flex下载:https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz

编译bison

$ tar -xzvf bison-3.1.tar.gz

$ cd bison-3.1

$ mkdir build && cd build

$ ../configure

$ make && make install

编译flex(必须先安装bison)

参考:Linux:编译flex、bison总结_wch0lalala的博客-CSDN博客

ubuntu下makeinfo安装,其实真正安装的是texinfo包

先下载以下源码安装包:

m4、autoconf、automake、libtool、gettext

libtool-2.4.tar.xz http://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.4.tar.xz

gettext-0.21.tar.xz http://mirrors.ustc.edu.cn/gnu/gettext/gettext-0.21.tar.xz

texinfo-6.7.tar.xz http://mirrors.ustc.edu.cn/gnu/texinfo/texinfo-6.7.tar.xz

help2man-1.47.9.tar.xz http://mirrors.ustc.edu.cn/gnu/help2man/help2man-1.47.9.tar.xz

编译并安装

$ tar xvJf *.tar.xz

$ ./configure

$ make && make install

$ tar -xzvf flex-2.6.4.tar.gz

$ cd flex-2.6.4

$ sh autogen.sh

$ mkdir build && cd build

$ ../configure

$ make && make install

测试flex和bison

下载测试工程:https://github.com/liuyang1/flex-bison-example/archive/refs/heads/master.zip

$ unzip flex-bison-example-master.zip

$ cd flex-bison-example-master/

$ make

即可生成一个计算器

$ ./calc