1

お客様から Visual C++ QT ベースのプロジェクトを受け取りました。QT ライブラリをインストールしてから、プロジェクトをコンパイルしました。プロジェクトは問題なくコンパイルされました。

ここで、既存のプロジェクトに新しい GUI インターフェイスを追加する必要があります。QT デザイナーで GUI を作成し、VC++ プロジェクトのソース ディレクトリに保存しました。次に、新しい GUI 用に .h および .cpp ファイルを作成し、このインターフェイスを呼び出すことができました。.h ファイルに Q_OBJECT をインクルードする場合、SIGNALS と SLOTS をインクルードする必要があります。コンパイルエラーがあります。

これらはエラーです。この問題を解決するのを手伝ってください:

unresolved external symbol "public: virtual struct QMetaObject const * __thiscall BetaLineServer::metaObject(void)const " (?metaObject)

unresolved external symbol "public: virtual void * __thiscall BetaLineServer::qt_metacast(char const *)"

unresolved external symbol "public: virtual int __thiscall BetaLineServer::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@
4

4 に答える 4

4

Q_OBJECT マクロをクラスに追加するときはいつでも、必ず qmake を再実行してからコンパイルする必要があります。

于 2011-09-01T14:58:22.803 に答える
2

おそらく、.ui、.cpp、および .h ファイルをプロジェクト ファイルに追加する必要があるだけです。

そこにリストされている場合、Qtはuiファイルで「moc」を実行し、不足しているシンボルを提供するソースコードを作成します。

于 2011-09-01T14:55:31.247 に答える
1

プロジェクトから.hファイルを除外し、再度含めます。moc_.cppが「生成されたファイル」に表示され、リンクエラーが表示されなくなります。

于 2012-09-28T14:53:30.727 に答える