0

QTでUIアプリをやっています。アプリケーションはデスクトップ上で実行され、ユーザーから bin ファイルを取得し、シリアル ポート経由でマイクロコントローラーをプログラムします。シリアルポート通信用に「qextserialport」ライブラリを選択しました。

次のように、クラスに qextserialport ヘッダーを含めました。

#ifndef __SERIALHELPER_H
#define __SERIALHELPER_H
#include <serialPortDriver/qextserialport.h>
#include "QThread"

class serialHelper : public QThread
{ etc.....

.pro ファイルで、qextSerial にこの行を追加しました

include(qextserialport.pri)

今、複数の定義エラーが発生しています:

./debug\moc_qextserialenumerator.o: 関数 'ZN20QextSerialEnumerator18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv' 内:

D:\QTNTloader-build-minGW-Debug/debug/moc_qextserialenumerator.cpp:47: 'QextSerialEnumerator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)' の複数定義

./debug\qextserialenumerator.o:D:\QTNTloader-build-minGW-Debug/../QTNTloader2/serialPortDriver//moc_qextserialenumerator.cpp:47: 最初にここで定義

QT を使用した初めての UI プログラムであるため、解決策が見つかりませんでした。エラーの理由について何か考えはありますか?

また、qextserial をダウンロードするときにもう 1 つ頭に浮かんだことは、プロジェクトとして開き、ビルドして .moc ファイルを取得し、手動でプロジェクトに追加したことです。moc ファイルが見つからないというエラーが発生したため、実行しましたか?私が想定していない何か?

4

1 に答える 1

0

プロジェクトに .moc ファイルを手動で追加する必要はありません。qmake に任せてください。([スタート] メニューから) Visual Studio コマンド プロンプトを開き、.pro ファイルを含むフォルダーに移動して、次のコマンドを実行します。

qmake -tp vc

これにより、コンパイルとリンクに必要なすべてのファイルを含む、Visual Studio で開くことができる vcproj ファイルが作成されます。

于 2013-01-14T17:15:47.473 に答える