- 关 键 词:
- linux系统
编译一个linux下的c系统,包含词法和语法分析模块,Linux上用bison和flex。
yacc是一个文法分析器的生成器,bison即是yacc的GNU版本.Lex和YACC是用于构造词法分析机和语法解释器的工具,利用Lex和YACC你可以轻松的构造一个语法解释器。
一开始make
错误1:
debian:/home/a/boa-0.94.13/src# make
yacc -d boa_grammar.y
make: yacc: Command not found
make: *** [y.tab.c] Error 127
解决方法:
debian:/home/a/boa-0.94.13/src# apt-get install bison
错误2:
debian:/home/a/boa-0.94.13/src# make
lex boa_lexer.l
make: lex: Command not found
make: *** [lex.yy.c] Error 127
解决方法:
debian:/home/a/boa-0.94.13/src# apt-get install flex
错误3:
debian:/home/a/sss/boa-0.94.13/src# make
gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:1: error: pasting "t" and "->" does not give a valid preprocessing token
make: *** [util.o] Error 1
解决方法:
修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff
然后
debian:/home/a/sss/boa-0.94.13/src# make clean
debian:/home/a/sss/boa-0.94.13/src# make
出现:
debian:/home/a/sss/boa-0.94.13/src# make
make: Nothing to be done for `all'.
说明make没有检查到需要编译的东西,库或者应用程序已经编译好了。
make主要检查的是时间戳,只要target比依赖的文件时间靠后它就认为不需要编译。
相关专题
- 系统优化大全 (18944篇文章)
- 系统安全设置 (24653篇文章)
- 系统安装手册 (21768篇文章)
- 系统备份专题 (18348篇文章)
- Linux集群技术 (9235篇文章)
- 体验Linux的音影世界 (8899篇文章)
- Linux驱动大全 (9724篇文章)
- Linux下的路由的配置与应用 (12806篇文章)
- Linux命令简介 (10830篇文章)
- 系统维护手册 (17723篇文章)
- 三步让你的Ubuntu桌面美观并且高效 (440次浏览)
- Ubuntu 8.04 中开启3D桌面特效与设置方法 (241次浏览)
- Ubuntu自由潮流新宠 挑战微软桌面 (178次浏览)
- 巧用键盘快捷键 让你的Ubuntu 变得更快 (146次浏览)
- Ubuntu发烧友三部曲 进阶篇 (127次浏览)
- 七大操作系统一季度漏洞比拼 (122次浏览)
- 经典文档:Linux网络安全配置基础详解 (111次浏览)
- 用 Wubi 安装 Ubuntu 8.04 只需五步 (92次浏览)
- Ubuntu Linux系统建立FTP服务器方法步骤 (90次浏览)
- Ubuntu软件安装方法完全指南 (76次浏览)



