从Qt4到Qt5的QtAddon SerialPort

胜利者

我正在将项目从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查看它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Qt4到Qt5的QtAddon SerialPort

来自分类Dev

将Qt4移植到Qt5

来自分类Dev

阈值MSComm到SerialPort

来自分类Dev

将Qt4移植到Qt5,获取OpenGL调用无法解析的外部符号

来自分类Dev

Qt4和Qt5上的QWebView

来自分类Dev

Qt4到Qt5:QPainter :: drawPixmapFragments()具有5个参数-如何解决?

来自分类Dev

使用PyQt和信号在qt5serialport.dll中获取段错误

来自分类Dev

编译依赖于安装了QT5的QT4的代码

来自分类Dev

编译依赖于安装了QT5的QT4的代码

来自分类Dev

即使已安装qt5,也可以使用qt4强制编译

来自分类Dev

在Qt4中使用最新的Qt5串行端口库

来自分类Dev

使用qt5构建qBitorrent失败(qt4有效)

来自分类Dev

如何修复明显的 Qt4 / Qt5 冲突?

来自分类Dev

DataBinding C# ObservableCollection SerialPort 到组合框(SerialPort.getPortNames=>返回字符串数组的方法)

来自分类Dev

在 Visual Studio 中,从 .Net 到 UWP C++ 的 SerialPort 类是什么?

来自分类Dev

SerialPort字节数组总是在字节[5]上返回0x63吗?

来自分类Dev

.NET SerialPort多线程

来自分类Dev

SerialPort类问题

来自分类Dev

Boost SerialPort的意外结果

来自分类Dev

无法从SerialPort读取

来自分类Dev

使用 SerialPort 的线程问题

来自分类Dev

Qt4 / Qt5 / Gtk2 / Gtk3字体提示一致性

来自分类Dev

哪个Qt Creator与Qt4兼容?

来自分类Dev

如何获得Ninject将特定的SerialPort实例注入到另一个类的特定实例中?

来自分类Dev

C#SerialPort类的用法

来自分类Dev

serialPort无法正确读取值

来自分类Dev

QTabWidget中的Qt4 QLabel

来自分类Dev

Qt4关闭与销毁之间的区别?

来自分类Dev

交叉编译Qt4:uic segfaults