编译flex、bison总结

  • step1、安装bison
  • step2、安装flex
    • 第一种方式:
    • 第二种方式:
  • END

这个做了很久了,一直没总结,今天以Ubuntu18.04为例,总结一下步骤,没有太多原理性的东西,希望能帮到编译flex、bison程序时出错的小伙伴们。
先解释下,lex与yacc是两个在Unix下的分别作词法分析和语法分析的工具,Linux对应flex与bison。

step1、安装bison

首先安装bison(因为它没有那么多的依赖包),由于即使更换成国内源,有些时候Ubuntu的下载网速大家也是了解的,为了尽量避免卡在apt-get install阶段,在此我们利用打包好的bison进行安装:

下载地址:bison

tar -zxvf bison-3.5.tar.gz
cd bison-3.5
./configure
make
make install

按理说不会出现什么错误,反正我安装过三台机器都没出问题。

step2、安装flex

重点:这个flex是真的很讨厌,很多的依赖包:m4、autoconf、automake、libtool、gettext,最好是先一股脑地下载好,等出了错就安装对应的依赖包就好了。这些都是压缩包安装,下载最新版本的tar.gz压缩包就好了,想下其他随便改了解压命令的事。下载地址:Index of GUN。
命令都是:

tar -zxvf *.tar.gz
cd *
./congifure
make
make install

现在来安装flex:

第一种方式:

最简单的方式必然是:

sudo apt-get install flex
flex --version   #查看flex版本

但是还是网速问题,有的时候还不如手动配置呢,于是有了方法2。

第二种方式:

1、刚开始我在上述连接中没有搜到flex,当然如果你们能搜到flex,可以按照上述方式直接安装。
于是我去github搜了它的源码flex-master.zip,地址:flex-github。

unzip flex-master.zip
cd flex-master
./autogen.sh
## 这时候会生成一个configure的可执行文件,如果没有就回过头看上述依赖包有没有都安装好
./configure
make

2、问题来了,又缺少依赖包!!

flex-master/build-aux/missing: line 81: makeinfo: command not found
WARNING: 'makeinfo' is missing on your system.

那我们安装makeinfo就是了,我用熟悉的apt-get进行安装,毕竟Index of GNU链接中也根本没有makeinfo:

sudo apt-get install makeinfo
//一定会出现以下错误
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package makeinfo

因为根本没有这个包!我查阅很多资料,发现这其实是一个叫做texinfo的依赖包:这里

sudo apt-get install texinfo

或者Index of GNU链接里有,安装方式与m4、autoconf等相同。安装好了之后又继续make,成功了。
3、但是make install出现了错误:

../build-aux/missing: 81: ../build-aux/missing: help2man: not found
WARNING: 'help2man' is missing on your system.

这个好解决,apt-get install的方式或者从Index of GNU下载手动安装help2man均可。

END

据某知名211一名“资深副教授”的说法,搭环境应该是分分钟的事(信?你就输了),所以老师的话告诉我,我这搭了半小时肯定是走了弯路啊~

Linux:编译flex、bison总结相关推荐

  1. g++ linux 编译开栈_方舟编译器编译hello world踩坑全记录

    闲来无事,看到方舟编译器完整开源,于是打算拿来试着编译一个东西来,接下来把踩过的一些坑记录一下. 参考文档 方舟编译器的官网是 OpenArkCompiler​www.openarkcompiler. ...

  2. nuttx linux 编译,linux下建立nuttx开发环境

    1.安装ARM Toolchain.(也可以选择使用buildroot自己搭建开发环境,不过我在linux下使用ARM Toolchain觉得挺好用,官方的开发环境也能够比较好支持ARM Toolch ...

  3. linux编译android源码,ubuntu16.04 Android源码下载编译

    本次编译源码的电脑为Ubuntu 16.04,4核 + 4G内存. 注. 对于电脑配置低的建议不要编译7.0以上的版本,就像我这台电脑,基本编译7.0以上都会报内存不足问题,因为在7.0版以上andr ...

  4. linux编译谷歌浏览器方法,构建Linux版本的谷歌Chrome浏览器

    Chromium编译说明(Linux版) 此页描述如果在Linux操作系统上编译构建Chromium浏览器.假如你对测试chromium或想移植chromium到别的平台请你继续阅读. 小提示:目前还 ...

  5. gsoap linux 编译,gSOAP嵌入式linux下的移植与程序开发

    一.移植 1.下载源码 本例下载最新版本为:gsoap_2.8.33.zip 2.解压源码 $ unzip gsoap_2.8.33.zip 3.平台准备unbuntu1204 $sudo apt-g ...

  6. linux 卸载 bison,linux下的bison报错,

    linux下的bison报错,求高手指教!急 想用flex+bison写个简单的编译器,生成三地址中间代码.结果bison的编译就一堆警告...大概是说定义的文法没有用之类的. 这个是flex文件 % ...

  7. Flex Bison 开始

    Flex 与 Bison 是为编译器和解释器的编程人员特别设计的工具: Flex 用于词法分析(lexical analysis,或称 scanning),把输入分割成一个个有意义的词块,称为记号(t ...

  8. Linux 编译内核且增加一个系统调用

    Linux 编译内核且增加一个系统调用 文章目录 Linux 编译内核且增加一个系统调用 一.在添加系统调用之前需要先编译一个Linux的内核. 解压 安装依赖 编译 安装内核 二.系统调用 声名和定 ...

  9. linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    linux编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14的方法对于 我这个小菜菜来讲是非常的复杂的还好有这篇文章,下面一起来看看吧. 一.使用系统镜像文件配置本地yum源 1 ...

最新文章

  1. my.cnf mysqld mysql_MySQL配置文件my.cnf详解【mysqld】模块(二)
  2. 阿里达摩院数学竞赛考题曝光!4道题限时48小时,网友:题目能看懂但就是不会做...
  3. 算法的时间复杂度示例
  4. .NET开发框架(一)-框架介绍与视频演示
  5. 【APICloud系列|36】小米应用商店可以检测同个应用不同版本信息
  6. java返回fail_Java集合中的fail-fast(快速失败)机制详解
  7. STM32之输入捕获
  8. access注入大全
  9. 即时语音提示软件php,即时语音提示校对工具
  10. 计算机界面视频录制软件,怎么进行电脑界面上的画面录制,推荐下好用的电脑录屏软件呗...
  11. PHP目录函数 opendir (打开目录句柄)
  12. 21)C语言之悬空else
  13. Jenkins ERROR: Server rejected the 1 private key(s)
  14. 有没有一款手机桌面便签软件?真正好用的便签软件推荐
  15. quartz框架(五)-Trigger相关内容
  16. post man以Content-type: application/octet-stream方式请求api
  17. Latex中的特殊符号
  18. (Python)sum函数的用法
  19. UNI-APP在自定义组件中内嵌H5/Html网页,可自定义webview大小,加载不闪屏
  20. 自学白帽黑客第二年总结

热门文章

  1. LU分解,LDLT分解,Cholesky分解
  2. MySQL怎么添加字段在指定列位置、怎么一次添加多个字段?
  3. JSP用户登录连接数据库
  4. WIFI配网方案:1、蓝牙配网 2、WIFI自身配网 3、SmartConfig一键配网
  5. 【ML】MoG与EM:从EM到MoG
  6. 最小二乘,最大似然,最大后验,查准率与查全率
  7. 基于C#+Oracle的模拟图书馆管理系统
  8. 认认真真推荐几个清华学霸的公众号!
  9. 雷德(Rader)算法
  10. 目标检测学习————Keras搭建yolo3目标检测平台