Не запускается приложение Qt
Сделал приложение, собрал все DLL , запустил у себя на пк, все работает, запустил на пк все работает, затем скинул другу , у него пишет что нету Qt5Core.dll , когда оно есть в папке
Скрин пк друга: http://prnt.sc/t8i4zi
Ответы (2 шт):
Для того, чтобы гарантированно положить в папку с приложением все нужные запчасти от Qt, используйте утилиту windeployqt из состава Qt
Нужно при помощи CMD или Powershell дотопать до папки, где лежит релизный exe программы и вызвать утилиту, указав полный путь к ее исполняемому файлу.
Если же это не работает, возможно, вы забыли установить на целевую машину Visual Studio Redist от вашей версии Visual Studio
Как ответ, я ответил в комментах. Но есть более другое предложение - прекрасная статическая линковка (соблюдение лицензионных соглашений на вашей совести)...
- Развертываете Linux на виртуальной машине (если вы под виндо)
- Заходите на сайт
http://mxe.ccи внимательно читаете ВСЕ! - Создаете каталог /home/(ваш-юзернейм)/dev/cross
- Заходите в него и выполняете
git clone https://github.com/mxe/mxe.git - Ставите зависимые либы
Для дебиана это:
apt-get install \
autoconf \
automake \
autopoint \
bash \
bison \
bzip2 \
flex \
g++ \
g++-multilib \
gettext \
git \
gperf \
intltool \
libc6-dev-i386 \
libgdk-pixbuf2.0-dev \
libltdl-dev \
libssl-dev \
libtool-bin \
libxml-parser-perl \
lzip \
make \
openssl \
p7zip-full \
patch \
perl \
python \
ruby \
sed \
unzip \
wget \
Ну а потом - сама установка 8 комплектов:
cd mxe
make MXE_TARGETS='i686-w64-mingw32.shared \
i686-w64-mingw32.static \
x86_64-w64- mingw32.static \
x86_64-w64-mingw32.shared \
i686-w64-mingw32.shared.posix \
i686-w64-mingw32.static.posix \
x86_64-w64-mingw32.static.posix \
x86_64-w64-mingw32.shared.posix' \
xz postgresql libmysqlclient luajit qt5 -j2 JOBS=2
После этого ставишь штатный Qt5-Linux, valgring из пакетов, прописываешь ранее установленные компиляторы и пакеты Qt5 в настройках QtCreator'а.
Вот и все - у тебя альтернативное окружение разработки. И САМОЕ ГЛАВНОЕ - могущее твою разработку линковать статически! А это значит - никаких деплоев, только твой исполняемый файл.
ЗЫ: Перед отдачей исполняемого модуля заказчику - не забывай его стрипать(да и все dll-ки на всякий случай)! Ибо Qt и без того - жЫрная скотина.