Мне нужно собрать некоторые библиотеки DLL с использованием Qt 5, но я должен делать что-то не так, поскольку программа нуждается в этом не работает. Я знаю, что что-то не так, потому что когда я запускаю обходчик зависимостей на любом из собранных dll, он говорит, что есть неправильные ссылки или что он не может найти определенные DLL:
Я считаю, что это потому, что некоторые вещи в x64bit, а другие в x32bits. Я работаю на 64-битной платформе, но я пытаюсь создать 32-битное приложение с 32-битными DLL. Я использую 32-битный компилятор MINGW, 32-битную версию Qt, 32-битные все, кроме ОС. Честно говоря, я новичок в этом, и я несколько растерялся, может кто-то указать мне правильное направление? Что не так с моей компиляцией?
Это .pro файл показанной DLL:
TEMPLATE = lib
TARGET = QENC
DESTDIR = ../release
QT += core gui widgets
CONFIG += release
DEFINES += QENC_LIB QT_DLL
INCLUDEPATH += ./GeneratedFiles \
./GeneratedFiles/Release \
. \
../../../proj-4.8.0/src
DEPENDPATH += .
MOC_DIR += ./GeneratedFiles/release
DLLDESTDIR += release
OBJECTS_DIR += release
UI_DIR += ./GeneratedFiles
RCC_DIR += ./GeneratedFiles
include(QENC.pri)
PS: Я даже получаю ошибки в QtCored.dll и других DLL, которые устанавливает Qt: S это может быть ничего или источник ошибки.
Что нужно проверить при развертывании в Windows:
Встроенный в режиме релиза — в файле PRO у вас есть CONFIG += release
так что это должно быть хорошо, вы также можете добавить CONFIG -= debug debug_and_release
линия, просто чтобы быть уверенным
При использовании MSVC — связан с версией выпуска библиотеки C (/MD
) не отладить (/MDd
)
Вы развертываете версию выпуска библиотек Qt (QtCore4.dll
) не отлаживать d в конце (QtCored4.dll
)
Вы развертываете правильные библиотеки DLL для своего компилятора — в Qt, который идет с включенным GCC, будут две версии библиотек DLL, одна из которых построена с GCC, с которой будет работать ваша программа, и одна, созданная с MSVC, с предварительно встроенными инструментами (такими как qmake
) будет ссылаться на.
Если вы используете MSVC, у вас установлены все пакеты обновлений и обновления и что распространяемый вами MSVC соответствует компилятору именно так.
Это довольно сложно исправить, если я что-то пропустил, дайте мне знать.