2012-03-15 15 views
2

古いTrolltech Qtのチュートリアルは、新しいものよりも役立ちます。undefined reference to vtableエラーが表示され、独自の信号を実装するクラスウィジェットになってしまいました。Qt vtableエラー

http://doc.trolltech.com/4.0/tutorial-t7.html

の代わりに別のコードを保ち、私は便宜上同じ.cppでそれらのすべてをコピーしました。

私は驚いて、vtableエラーが未定義の仮想関数によって発生していることを発見しました。しかし、私はチュートリアルコードからコード分離を除いて何も省略しませんでした。 Q_OBJECTマクロをlcdrange.hから除外すると、スロットと信号がプロジェクトをコンパイルするように見えます。私はvoid valueChanged(int newValue);lcdrange.hという数字を書いていますが、このチュートリアルでは定義がありませんでした。私は彼らが働いていないコードを投稿しないので、間違ったことをしているに違いないと確信しています。私はC :: B(MinGW)を使用しています。私はC++も新しくなっています。

答えて

3

MOCはlcdrange.hのコードを生成する必要があり、生成されたコードをコンパイルしてリンクする必要があります。 qmakeは、HEADERS変数にリストされているすべてのヘッダーファイルに対してこれを保証します。 lcdrange.hが.proファイルのHEADERSセクションにリストされていることを確認し、qmakeを再実行してください。

関連する問題