Я переношу проект с 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>
Я пробовал каждый из них, и все дают мне ошибки. Я буду продолжать пытаться и посмотреть, прояснится ли что-нибудь