3

Qt 4.8.5 で使用する Windows プラットフォーム用の QextSerialPort の静的ライブラリを作成するにはどうすればよいですか?

これを行うために .pro または .pri ファイルを変更する方法がわかりません。(.prf ファイルは再生成され続けます)。

そのため、結果の .vcproj ファイルを変更して静的ビルドを作成し、いくつかの定義を削除しようとしましたが、それでも次のような警告が表示されます。

qextserialport.lib(qextserialport.obj) : 警告 LNK4006: "public: __thiscall QextSerialPort::QextSerialPort(class QString const &,enum QextSerialPort::QueryMode,class QObject *)" (??0QextSerialPort@@QAE@ABVQString@@W4QueryMode@ 0@PAVQObject@@@Z) は既に qextserialportd1.lib(qextserialportd1.dll) で定義されています。2 番目の定義は無視されます

実行時に「システムエラー:qextserailportd1.dllがコンピューターにないため、プログラムを開始できません」というメッセージが表示されます。.lib を使用して静的ビルドを作成しようとしているため、これはもちろん真実です。

では、静的ビルドを正しく行うにはどうすればよいでしょうか?

4

2 に答える 2

1

QextSerialPort の静的ライブラリを構築する必要はありません。アプリケーションでソース コードをそのまま使用できます。.priそのファイルをファイルに含めるだけ.proです:

include(Path/To/qextserialport.pri)

または、QextSerialPort ソース コードをsrcディレクトリからアプリケーション ディレクトリにコピーし、次の行をプロジェクト ファイルに追加します。

include(qextserialport.pri)

これで、ヘッダー ファイルを含めることができます。

#include "qextserialport.h"

そしてライブラリを使用します:

QextSerialPort * port = new QextSerialPort("COM1");
connect(port, SIGNAL(readyRead()), this, SLOT(onDataAvailable()));
port->open();

ライブラリをリンクしたり、展開用に dll を配置したりする必要はありません。

于 2015-01-05T19:04:49.097 に答える
0

Nejat さん、返信ありがとうございます。非常に明確な。

また、私の足跡をたどる人にとって、それは私にとってマニュアルを読むケースでした. 答えは https://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_RCにあります。

CONFIG += qesp_static を追加するように明確に言っています

.pro ファイルに。これも機能します。

于 2015-01-05T19:13:06.350 に答える