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

该项目使用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我该怎么办。

编辑好吧,我发现this告诉您将任何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查看它。

关于c++ - 从Qt4到Qt5的QtAddon SerialPort,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23510911/

10-11 21:04