Qt QextSerialPort 静态库

Qt QextSerialPort static lib

如何为 windows 平台制作 QextSerialPort 静态库以与 Qt 4.8.5

一起使用

我不明白如何修改 .pro 或 .pri 文件来执行此操作。 (.prf 文件不断重新生成)。

所以我尝试修改生成的 .vcproj 文件以进行静态构建,并删除了一些定义,但我仍然收到如下警告:

qextserialport.lib(qextserialport.obj) : warning LNK4006: "public: __thiscall QextSerialPort::QextSerialPort(class QString const &,enum QextSerialPort::QueryMode,class QObject *)" (??0QextSerialPort@@QAE@ABVQString@@W4QueryMode@0@PAVQObject@@@Z) already defined in qextserialportd1.lib(qextserialportd1.dll); second definition ignored

并在运行时得到 "System Error: The program can't start because qextserailportd1.dll is missing from your computer"。这当然是正确的,因为我正在尝试使用 .lib

进行静态构建

那么如何正确地进行静态构建?

无需构建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 进行部署。

感谢 Nejat 的回复。非常清楚。

此外,对于那些追随我脚步的人来说,这对我来说是一个阅读手册的案例。答案在: https://code.google.com/p/qextserialport/wiki/QextSerialPort_1_2_RC

明明说要加 配置 += qesp_static

到 .pro 文件。这也行。