|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
对于linux命令,一定要学会用man和info去查他们的解释;
编译一个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-dboa_grammar.y
make:yacc:Commandnotfound
make:***[y.tab.c]Error127
办理办法:
debian:/home/a/boa-0.94.13/src#apt-getinstallbison
毛病2:
debian:/home/a/boa-0.94.13/src#make
lexboa_lexer.l
make:lex:Commandnotfound
make:***[lex.yy.c]Error127
办理办法:
debian:/home/a/boa-0.94.13/src#apt-getinstallflex
毛病3:
debian:/home/a/sss/boa-0.94.13/src#make
gcc-g-O2-pipe-Wall-I.-c-outil.outil.c
util.c:100:1:error:pasting"t"and"->"doesnotgiveavalidpreprocessingtoken
make:***[util.o]Error1
办理办法:
修正src/compat.h
找到
#defineTIMEZONE_OFFSET(foo)foo##->tm_gmtoff
修正成
#defineTIMEZONE_OFFSET(foo)(foo)->tm_gmtoff
然后
debian:/home/a/sss/boa-0.94.13/src#makeclean
debian:/home/a/sss/boa-0.94.13/src#make
呈现:
debian:/home/a/sss/boa-0.94.13/src#make
make:Nothingtobedonefor`all.
申明make没有反省到必要编译的器材,库大概使用程序已编译好了。
make次要反省的是工夫戳,只需target比依附的文件工夫靠后它就以为不必要编译
</p>
使用gcc或g++进行编译,使用gdb进行调试; |
|