zoukankan      html  css  js  c++  java
  • (笔记)boa服务器make错误

    编译一个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比依赖的文件时间靠后它就认为不需要编译
    另外,还有两个比较好的网址,可以参考:
    http://blog.csdn.net/hongjiujing/archive/2007/09/22/1795941.aspx

    http://blog.csdn.net/truelie/archive/2007/01/31/1499300.aspx

  • 相关阅读:
    集合综合练习<三>
    集合综合练习<二>
    集合综合练习<一>
    java打分系统
    mysql存储过程
    mysql的视图、索引、触发器、存储过程
    mysql
    Java 集合底层原理剖析(List、Set、Map、Queue)
    HashMap底层实现
    Gradle
  • 原文地址:https://www.cnblogs.com/tdyizhen1314/p/4493769.html
Copyright © 2011-2022 走看看