繁体   English   中英

从Qt4到Qt5的QtAddon SerialPort

[英]QtAddon SerialPort from Qt4 to Qt5

我正在将项目从Qt4迁移到Qt5。 我已经完成了项目本身的迁移,现在正在研究库。 到目前为止,我在将它们转换并链接到项目方面还没有很多问题,但是这引发了未定义的引用。

该项目使用QtSerialPort,并使用它的Qt4版本完美编译,并且在.pro文件中这样链接:

-l:"C:/Users/Sprint/Desktop/swe/marssies/libQtSerialPort.a" \

我已经使用/针对Qt5编译了串行端口库,并将其链接如下:

-l:"C:/Users/Sprint/Desktop/swe/marssies/libQt5SerialPort.a" \

但是我不断收到这些错误:

./release\gpssettingswidget.o:gpssettingswidget.cpp:(.text+0x4ecc): undefined reference to `QtAddOn::SerialPort::SerialPortInfo::availablePorts()'
Makefile.Release:922: recipe for target '..\Release\Swibz.exe' failed
./release\gpssettingswidget.o:gpssettingswidget.cpp:(.text+0x4f3e): undefined reference to `QtAddOn::SerialPort::SerialPortInfo::portName() const'
./release\gpssettingswidget.o:gpssettingswidget.cpp:(.text+0x4f5d): undefined reference to `QtAddOn::SerialPort::SerialPortInfo::description() const'
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: ./release\gpssettingswidget.o: bad reloc address 0xd in section `.text$_ZN25Ui_GPSSettingsWidgetClass13retranslateUiEP14SettingsWidget[__ZN25Ui_GPSSettingsWidgetClass13retranslateUiEP14SettingsWidget]'
collect2.exe: error: ld returned 1 exit status
mingw32-make[1]: *** [..\Release\Swibz.exe] Error 1

我知道它是一个链接器错误,因为“ ld返回了1退出状态”,我尝试链接libQt5SerialPortd.a,libQt5SerialPort.dll和libQt5SerialPortd.dll,但抛出相同的错误
(顺便说一句,如果有人知道libNAMEd.a和libNAME.a之间的区别,请分享您的知识)

也许QtAddOn现在在另一个库中? 因为否则它不应该识别许多其他功能,而不仅仅是具有QtAddOn的功能。
非常感谢你。 我不知道如果没有stackoverflow我该怎么办。

编辑好吧,我发现告诉将任何SerialPortInfo声明的变量更改为QSerialPortInfo,我已经在项目中做到了这一点,并且遇到了新的错误,但是现在我不确定应该将哪个#include放在:

#include <QtSerialPort>
#include <QSerialPort>
#include <QSerialPortInfo>
#include <QtSerialPort/QtSerialPort>

我已经尝试了其中的每一项,但都给了我错误。 病继续尝试,看是否有任何明确的事情

QtSerialPort现在是Qt的一部分。 在5.1.0版本中,它正式成为Qt的一部分。 如果使用新版本的Qt,则无需单独获取源代码并链接到它。

要将模块与Qt 5一起使用,请将此行添加到qmake项目文件中:

QT += serialport

然后,您可以包括头文件。 要在您的应用程序中使用这些类,请使用以下include语句:

#include <QtSerialPort/QtSerialPort>

有关这些类的文档非常不错。 您可以从Qt Assistant查看它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM