2012-01-09 24 views
0

をコンパイルする習慣。私はセマンティックアクションが不完全であり、それはそこに着くとき、私はコンパイルする生成されたパーサを取得することはできませんコンパイルエラーを起こすという事実を無視して、働いているbison/flex/c++projectを持っています。ヘッダファイルはソースファイルと一致しません:バイソンとC++は、私はこの問題を解決しようとするすべての日の私の頭を叩いてきた私にとって

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のリンクです。私はg++ 4.6.1,flex 2.5.35、およびbison 2.4.1を使用しています。問題のファイルはbisonによって生成されたParser.[ch]ppです。

ありがとうございました。名前空間の

+0

生成されたコードを見ることができなければ、言うことは難しいです。リポジトリに追加したり、別の場所で利用できるようにすることはできますか? –

+0

完了。生成されたファイルはgit repoに追加されました。 – Naddiseo

答えて

2
namespace Foo { 
    class Bar; 
    void x (class Bar); // refers to class Foo::Bar 
    void y (class Baz); // refers to class ::Baz 
} 

フォワード-宣言class Driver

+0

感謝します!私は一日中これについていた。 – Naddiseo

関連する問題