编译flex总结

编译flex 过程如下

环境Ubuntu 14.04.5,若版本过低不支持xz解压命令,会导致后面的GNU软件无法解压,无法安装

1、解压flex-master.zip,执行./autogen.sh 若编译ok,则会生成configure文件

2、编译遇到问题需要安装如下几个文件,root下安装

 

安装顺序m4automake, autocong,libtool,gettext注意版本一定要大于图中的版本,否则会产生一些编译问题,这些工具都相互依存,版本不正确无法编译通过

 

3、编译完后仍然会报一些错误

例如

make[2]: makeinfo: Command not found

需要安装texinfo

sudo apt-get install texinfo

 

需要安装bison

sudo apt-get install bison

安装m4

http://ftp.gnu.org/gnu/m4/

使用命令解压

xz -d m4-1.4.18.tar.xz
tar -xvf m4-1.4.18.tar \ 
cd m4-1.4.18 \ 
./configure
make

make install

安装autoconf

http://ftp.gnu.org/gnu/autoconf/


xz -d -xvf autoconf-2.69.tar.xz \ 

tar -xvf autoconf-2.69.tar.
cd autoconf-2.69 \ 
./configure

make

make install

安装automake

http://ftp.gnu.org/gnu/automake/

xz -d -xvf automake-1.15.tar.xz \ 
tar -xvf automake-1.15.tar \ 
cd automake-1.15 \ 
./configure

make

make install

安装libtool

http://mirrors.ustc.edu.cn/gnu/libtool/

 xz -d -xvf libtool-2.4.6.tar.xz \ 
tar -xvf libtool-2.4.6.tar \ 
cd libtool-2.4.6 \ 
./configure

make

make install

 

 

安装gettext

http://ftp.gnu.org/pub/gnu/gettext/

xz -d -xvf gettext-0.19.7.tar.xz \ 
tar -xvf gettext-0.19.7.tar \ 
cd gettext-0.19.7 \ 
./configure

make

make install

若安装过程中出现AM_GNU_GETTEXT这样的字符的一些错误,或者与M4相关的一些错误,大部分原因是以上工具的版本不匹配造成的。安装给出的工具安装,编译不会有错误

以上工具安装完成后开始编译,

首先./autogen.sh

 

生成了configure文件表示运行成功

 

再执行configure文件,需要提前选好编译选项

 

然后安装编译选项编译

 

配置成功

./configure --help 需要弄清楚编译选项的意思

 

最后make 编译

通过log可以看出是用的哪个交叉编译器

 

提示help2man没安装

 

sudo apt-get install help2man 安装后再make

 

不确定是否正确这个lib

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
flex和bison是两个强大的工具,分别用于词法分析和语法分析。PL/0是一种简单的编程语言,flexbison可以用来实现PL/0编译。 首先,我们需要使用flex来编写PL/0的词法分析器。词法分析器负责将输入的源代码分割成一个个的单词(也叫做词法单元)。通过编写正则表达式规则,我们可以定义PL/0的各种关键字、标识符、常量和运算符。当flex识别到一个单词后,它将把这个单词传递给bison进行语法分析。 接下来,我们需要使用bison来编写PL/0的语法分析器。语法分析器负责将词法分析器传递过来的单词组织成语法树。通过编写文法规则,我们可以定义PL/0的语法结构,并且使用语义动作来处理语法规则的语义。在语法分析过程中,bison将遵循自上而下的递归下降解析法,通过匹配和规约规则,构建语法树和符号表,并对语法错误进行处理。 最后,我们可以扩展编译器的功能,例如添加代码生成和优化。代码生成负责将语法树翻译成目标代码,可以是汇编语言或者直接生成可执行目标文件。优化则是对生成的目标代码进行优化,以提高程序的执行效率。 总结来说,使用flexbison可以方便地实现PL/0编译器。flex负责词法分析,bison负责语法分析,二者协同工作可以将PL/0源代码转化成可执行的目标代码。此外,还可以通过扩展编译器功能来进一步优化代码的生成和执行效率。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值