【发布时间】:2012-01-09 03:12:39
【问题描述】:
我整天都在努力解决这个问题。我有一个bison/flex/c++ project 我正在处理,忽略了语义操作不完整并且在到达那里时会导致编译错误的事实,我无法编译生成的解析器。我得到以下信息:
g++ -I. -g3 -std=c++0x -DYYDEBUG=1 -Werror -Wfatal-errors -pipe -fomit-frame-pointer -D_FORTIFY_SOURCE=2 -fstack-protector-all -o ndes.bin Parser.cpp Scanner.cpp Driver.cpp
Parser.cpp:174:3: error: prototype for ‘nde::script::Parser::Parser(nde::script::Driver&)’ does not match any in class ‘nde::script::Parser’
compilation terminated due to -Wfatal-errors.
make: *** [all] Error 1
现在,从错误来看,我认为可以直接修复:头文件与源文件不匹配。所以,我打开它们,我找不到它们之间的区别。
我的项目的完整源代码在上面的 github 链接中,使用“script”文件夹下的“rework”分支。我正在使用g++ 4.6.1、flex 2.5.35 和bison 2.4.1。有问题的文件是由野牛生成的Parser.[ch]pp。
感谢您的帮助。
【问题讨论】:
-
看不到生成的代码很难说。您可以将其添加到您的存储库或以其他方式使其在某处可用吗?
-
完成。生成的文件添加到 git repo。
标签: c++ c++11 bison flex-lexer