如何为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
进行静态构建那我该如何正确地进行静态构建呢?
答案 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文件。这也有效。