首页 文章

Qt QextSerialPort静态lib

提问于
浏览
3

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

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

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

qextserialport.lib(qextserialport.obj):警告LNK4006:“public:__ thishisall QextSerialPort :: QextSerialPort(class QString const&,enum QextSerialPort :: QueryMode,class QObject *)”(?? 0QextSerialPort @@ QAE @ ABVQString @@ W4QueryMode @ 0 @ PAVQObject @@@ Z)已在qextserialportd1.lib(qextserialportd1.dll)中定义;忽略第二个定义

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

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

2 回答

  • 0

    无需构建QextSerialPort的静态库 . 您只需在应用程序中使用源代码即可 . 只需在 .pro 文件中包含它的 .pri 文件:

    include(Path/To/qextserialport.pri)
    

    或者将 src 目录中的QextSerialPort源代码复制到您的应用程序目录,并将以下行添加到项目文件中:

    include(qextserialport.pri)
    

    现在您可以包含头文件:

    #include "qextserialport.h"
    

    并使用该库:

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

    无需链接库或将dll用于部署 .

  • 1

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

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

    它明确地说要添加CONFIG = qesp_static

    到.pro文件 . 这也有效 .

相关问题