@Neonoviiwolf
Flutter developer

Скомпилированная программа на Qt просит библиотеку qt5cored.dll, где искать?

Добрый день!
Осваиваю азы C++ на Qt
Написал аля Hellow world. Пробую запустить вне Qt, пишет, что нужна библиотека qt5cored.dll, т.е. именно с "d", я такую не нашёл и гугл мне ничего путного не выдал. Пробовал переименовать qt5core.dll в qt5cored.dll, пишет, что не может найти вход в библиотеку.

Ещё пару мелких вопросов, что-то путёвого ответа в гугле не нашёл.
1)Как убрать ошибку при запуске проекта в релизе "Не удалось получить идентификатор подчинённого процесса: Параметр задан неверно.", но при этом запускается
2)Хоть я и нажимаю собрать проект в релиз, он не собирается в итоге, но запускается (т.е. нет exe в папке релиз), а вот в режиме отладки таких проблем нету, это связано с предыдущей ошибкой?
3) Скачал Qt Creator (Community), а в нём можно встраивать библиотеки в исполняемый файл? Или так и придётся таскать .dll все с проектом

#include <QTextStream>

int main()
{
    QTextStream cout (stdout);
    cout <<"Hi"<< endl;
    cout.setCodec("CP866");
    cout <<QString::fromUtf8("привет!")<< endl;
    return 0;
}


Как-то удалось собрать в релиз, но уже нужна qt5core.dll, скопировал в проект, теперь вот что пишет
2c89066edd554764b505d4429f8718c6.jpg
  • Вопрос задан
  • 6027 просмотров
Пригласить эксперта
Ответы на вопрос 4
GavriKos
@GavriKos
Соберите приложение в Release - и будет требовать без d.
Ответ написан
1) идёте в папку с собранным *.exe файлом.
2) копируете путь не к файлу, а к папке, где находится этот файл из п.1
3) запускаете "командную строку Qt (с нужным вам компилятором.. там их может быть несколько)" через меню "Пуск".
4) с помощью команды cd /d <путь из п.2> в открывшейся консоли переходите в папку с собранным *.exe
5) выполняете windeployqt.exe .
6) готово.
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
Для того, чтобы запускать вне Qt Creator используйте утилиту windeployqt из стандартной поставки (папки с Qt)

Для распространения все файлы и dll можно закатать в один .exe инсталлером, например inno setup, либо собрать Qt статически, и слинковать с вашей программой, тогда dll будут не нужны.
Ответ написан
Комментировать
Nipheris
@Nipheris Куратор тега C++
<Папка установки Qt>\qtbase\bin - берем все что нужно и копируем в папку с exe. Что конкретно нужно, можно выяснить с помощью Dependency Walker или просто пытаться запустить, пока не запустится. А, да, еще вам плагин для платформы понадобится, создаете рядом с exe папку platforms, идете в подпапку с таким же именем в qtbase\bin, копируете оттуда qwindows.dll. Если этого будет недостаточно - ошибку в комментарии.

Пробовал переименовать qt5core.dll в qt5cored.dll, пишет, что не может найти вход в библиотеку.

Переименовывать не стоит, даже если бы это заработало, вы бы поймали кучу непонятных ошибок при отладке. Вам нужно либо скачать готовые дебажные dll-ки, либо скомпилить дебаг-версию Qt самому.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы