Qt QextSerialPort静态lib

时间:2015-01-05 17:59:59

标签: c++ windows qt serial-port qextserialport

如何为Windows平台创建一个QextSerialPort静态库,以便与Qt 4.8.5一起使用

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

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

  

qextserialport.lib(qextserialport.obj):警告LNK4006:“public:   __thiscall QextSerialPort :: QextSerialPort(类QString const&,枚举QextSerialPort :: QueryMode,类QObject *)“   (?? 0QextSerialPort @@ @ QAE @@ ABVQString @ W4QueryMode 0 @ PAVQObject @@@ Z)   已在qextserialportd1.lib(qextserialportd1.dll)中定义;第二   定义被忽略

并在运行时获取“系统错误:程序无法启动,因为您的计算机缺少qextserailportd1.dll”。当然这是真的,因为我试图使用.lib

进行静态构建

那我该如何正确地进行静态构建呢?

2 个答案:

答案 0 :(得分: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用于部署。

答案 1 :(得分:0)

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

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

明确地说要添加 CONFIG + = qesp_static

到.pro文件。这也有效。