Я пытаюсь создать выпускную версию проекта, над которым я работаю. При создании в Qt-создателе в Debug он отлично работает. Когда я пытаюсь создать релиз, я получаю «не могу найти -lQtSerialPort». Qt 4.8.4 не включает QtSerialPort. Я должен был добавить это вручную. Я предполагаю, что я кое-что забыл включить сюда. Возможно в файле .pro?Qt 4.8.4 Создание выпуска
Кроме того, я заметил, что в моем каталоге Qt/4.8.4/lib у меня есть много файлов .prl. Есть один для QtSerialPortd.prl. Это единственное, что похоже на версию .dll. Не уверен, что это важно или нет.
Makefile включает в себя следующее:
Makefile: ???.pro
c:/Qt/4.8.4/mkspecs/features/serialport.prf \
$(QMAKE) -config release -o Makefile ???.pro
c:/Qt/4.8.4/mkspecs/features/serialport.prf:
serialport.prf выглядит следующим образом:
qtAddLibrary(QtSerialPort)
!isEmpty(QTSERIALPORT_BUILD_ROOT) {
INCLUDEPATH -= $$QMAKE_INCDIR_QT/QtSerialPort
QMAKE_INCDIR += $$QTSERIALPORT_BUILD_ROOT/include $$QTSERIALPORT_BUILD_ROOT/include/QtSerialPort
QTSERIALPORT_BUILD_SUBDIR = src/serialport
debug_and_release_target {
CONFIG(debug, debug|release) {
QTSERIALPORT_BUILD_SUBDIR = $$QTSERIALPORT_BUILD_SUBDIR/debug
} else {
QTSERIALPORT_BUILD_SUBDIR = $$QTSERIALPORT_BUILD_SUBDIR/release
}
}
QMAKE_LIBDIR += $$QTSERIALPORT_BUILD_ROOT/$$QTSERIALPORT_BUILD_SUBDIR
}
mac {
LIBS -= -framework QtSerialPort$${QT_LIBINFIX}
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
LIBS += -lQtSerialPort$${QT_LIBINFIX}_debug
} else {
LIBS += -lQtSerialPort$${QT_LIBINFIX}
}
}
Edit:
После выяснить, я могу изменить имя файла, удалив д в конце я понял, что все библиотеки, включенные в exe, которые встроены, включают файлы, которые не заканчиваются на «d.dll», за исключением файла QtSerialPortd.dll.
LDD на то есть отладки .exe:
QtCored4.dll => /cygdrive/c/Qt/4.8.4/bin/QtCored4.dll (0x69cc0000)
QtGuid4.dll => /cygdrive/c/Qt/4.8.4/bin/QtGuid4.dll (0xf30000)
QtNetworkd4.dll => /cygdrive/c/Qt/4.8.4/bin/QtNetworkd4.dll (0x6cb40000)
QtSerialPortd.dll => /cygdrive/c/Qt/4.8.4/bin/QtSerialPortd.dll (0x63680000)
LDD на .exe выпуска:
QtCore4.dll => /cygdrive/c/Qt/4.8.4/bin/QtCore4.dll (0x6e0c0000)
QtGui4.dll => /cygdrive/c/Qt/4.8.4/bin/QtGui4.dll (0x67700000)
QtNetwork4.dll => /cygdrive/c/Qt/4.8.4/bin/QtNetwork4.dll (0x65c80000)
QtSerialPortd.dll => /cygdrive/c/Qt/4.8.4/bin/QtSerialPortd.dll (0x63680000)
Release против Debug, это выглядит как QtSerialPortd.dll осталась прежней. Я предполагаю, что это будет проблематично, когда я попробую это приложение на разных машинах.
Вам нужна другая библиотека для отладки и выпуска сборок. Вы можете проверить это, используя 'config (release, debug | release)' и 'config (debug, debug | release)' - для выпуска и debug, соответственно. –