Как перенести qt программу на другой компьютер

Как правило программы пишутся для того чтобы их впоследствии распространять. Либо в открытом доступе, либо локально (например, внутри компании).

Как сделать, чтобы пользователь мог работать с программой, написанной на Qt, на своём компьютере?

Подготовку программы на Qt к распространению можно условно разделить на два этапа:

  1. Компиляция программы в «релиз»;
  2. Комплектация программы необходимыми библиотеками.

Рассмотрим оба этапа применительно к Qt 5.7 с компилятором MinGW для операционной системы Windows.

Компиляция программы в «релиз»

Существуют два основных варианта компиляции приложения:

  • Отладка;
  • Выпуск («релиз»).

Отладочный вариант используется только на этапе разработки и не предназначен для распространения. Кроме того, при комплектации библиотеками для отладочного варианта последние должны иметь суффикс « d » в названии.

Поэтому программу перед распространением необходимо скомпилировать в варианте «Выпуск» («релиз»).

Урок 2 — Первая Windows программа на Qt

Выбрать нужный вариант компиляции можно непосредственно в рабочем окне QtCreator как показано на скриншоте.

После выбора варианта компиляции и её последующего запуска, программа будет скомпилирована соответствующим образом.

Комплектация библиотеками

После компиляции программы её следует обязательно укомплектовать необходимыми библиотеками.

Дело в том, что в папке со скомпилированной программой находится только исполняемый файл (exe). В таком виде программа будет работоспособна только при запуске из QtCreator, что для обычного пользователя совершенно не приемлемо (да и для самого разработчика не всегда удобно).

Конкретный перечень необходимых библиотек зависит от проекта. Ниже приведён список самых основных из них (которые требуются для запуска любого Qt приложения).

Библиотеки собственно Qt:

  • Qt5Core. dll;
  • Qt5Gui.dll;
  • Qt5Widgets.dll.

Их, а также другие библиотеки Qt можно найти в папке : папка_установки_QtToolsmingw530_32bin

Служебные библиотеки компилятора:

  • libgcc_s_dw2-1. dll;
  • libstdc++-6. dll;
  • libwinpthread-1.dll.

Их можно найти в папке: папка_установки_Qt5.7mingw53_32bin

Для того чтобы укомплектовать своё приложение необходимыми библиотеками достаточно просто скопировать их в папку с исполняемым файлом.

После этого программа будет готова к распространению и можно приступать к созданию инсталлятора или просто упаковать приложение вместе со всеми библиотеками, например, в zip архив.

Читайте также:
Llko программа что такое

Обратите внимание!

Библиотеки для приложения следует копировать именно из папок mingw, а не QtCreator. В последнем случае программа будет укомплектована библиотеками, которые предназначены только для QtCreator и, как следствие, может в итоге оказаться неработоспособной.

Источник: streletzcoder.ru

Перенос проекта

Как запускать приложения Qt 5 на других компьютерах (Windows 7)

Изображение 39104

Я разработал простое приложение с Qt 5.0.2 на Windows 7 Ultimate. В качестве компилятора QtCreator использовал MSVC2012_64bit. И я не могу перенести приложение на другой компьютер. Это не работает. Для приложения Qt требуются DLL, которые я не могу найти. Исследователь зависимостей считает, что .dll ниже не найден. Где я могу их найти? Почему эта проблема настолько распространена?

Все люди жалуются, что не могут получить свой .exe , который разработан с помощью Qt, работать на другом компьютере. EDIT1: Кстати, когда я добавил DCOMP.dll , загруженный из Интернета, не найденные DLL становятся в 2-3 раза больше, чем сейчас:) EDIT2: Также обратите внимание, что на другом компьютере (Windows 7 Home Premium), когда я дважды нажимаю на exe файл, он показывает, что он загружается и не действует, никакой ошибки вообще нет.

Narek 24 апр. 2013, в 19:53
Поделиться

Так это работает на вашем компьютере? Почему вы не используете Process Explorer, чтобы получить список всех библиотек DLL, которые загружаются во время выполнения?

sashoalm 24 апр. 2013, в 17:49

Да, конечно! Но я не могу запустить EXE на других компьютерах. И я не могу найти эти DLL в моем компьютере. Так странно.

Narek 24 апр. 2013, в 17:50

Почему вы не используете Process Explorer, чтобы получить список всех библиотек DLL, которые загружаются во время выполнения? Например, когда вы запускаете свою программу на компьютере , где она работает, предположительно. Я имею в виду, установить Process Explorer на свой компьютер и сделать это. Кроме того, MSVC не распечатывал все загруженные библиотеки, например сообщения ‘rundll32.exe’: Loaded ‘C:WindowsSystem32dwmapi.dll’, Cannot find or open the PDB file

Читайте также:
Лучшие программы для просмотра фотографий на Андроид

sashoalm 24 апр. 2013, в 17:51
Я установил Process Explorer. Как это помогает увидеть, что dll и откуда он загружается?
Narek 24 апр. 2013, в 17:57
Хорошо, хорошо, я нашел. Ctrl + D. Но эти dll около 50 🙁
Narek 24 апр.

2013, в 17:59

Я думаю, что connected.exe всегда перечисляет некоторые поддельные библиотеки DLL, которые, как утверждается, отсутствуют, но которые на самом деле не нужны. Начните с библиотек Qt, других библиотек, которые вы явно добавили, и среды выполнения MSVC.

Frank Osterfeld 24 апр. 2013, в 18:04

Файлы pdb не нужны (используются для отладки путем предоставления символов), поэтому вы можете игнорировать эти предупреждения.

drescherjm 24 апр. 2013, в 18:33

Этот другой компьютер — 64-битный компьютер с Windows? Отсутствующие библиотеки DLL выглядят как стандартные элементы Windows. Ваш 64-битный exe не может работать на 32-битном компьютере.

Источник: overcoder.net

Запуск скомпилированной программы на другой ubuntu?

Добрый день. Скомпилировал программу в qt creator с использованием либ opencv.
Скопировал на другой компьютер папку релиза, выдает ошибку в отстувии библиотек, скопировал в эту папку необходимые либы, всё равно ошибка, скопировал в /usr/local/lib та же хрень.
Так же делал sudo ldconfig — v.

Привык что в винде при переносе можно все dll просто в папку с exe закинуть и всё работает, а здесь какая-то засада.
Не буду же я компилить opencv на каждой машине где прогу запустят?

  • Вопрос задан более трёх лет назад
  • 1824 просмотра

3 комментария

Простой 3 комментария

sim3x

можно все dll просто в папку с exe закинуть и всё работает

тут аналогично

vvafree

sim3x, такой подход не работает.

sim3x

tldp.org/HOWTO/Program-Library-HOWTO/shared-librar.
You can use gcc’s -L flag in simple cases. You can use the «rpath» approach (described above), particularly if you only have a specific program to use the library being placed in a «non-standard» place.

Читайте также:
Требования к рабочей программе по английскому языку

Решения вопроса 0
Ответы на вопрос 7

CityCat4

Жил-был у бабушки серенький троллик.
В первую очередь забудьте пожалуйста вот это —

что в винде

Что было в винде, то осталось в винде. В линухе другой подход. Здесь не будут автоматом грузиться левые либы.
1. Проверьте, что в /etc/ld.so.conf.d есть файлик (имя любое), содержащий строку:
/usr/local/lib
Если не было, создайте и уже потом ldconfig. Проверить, что нужные либы система увидела, можно через ldconfig -p
2. Если используется opencv, то на целевой машине должен стоять OpenCV — а Вы думаете, менеджеры пакетов, которые автоматически разрешают и ставят зависимости — просто так придумали, от скуки?
3. Вы еще и автоматически детектить его должны через configure и ошибку выдавать вменяемую, что OpenCV не обнаружен — это если программа будет только в сырцах распространяться. А если пакетами — то ее поставит соответствующий пакетный менеджер, для чего ему должны быть конечно выданы указания 🙂

Ответ написан более трёх лет назад
Нравится 4 2 комментария

planc

. Что было в винде, то осталось в винде. В линухе другой подход. Здесь не будут автоматом грузиться левые либы.


вот эти ребята не очень согласны )
https://www.ubuntu.com/desktop/snappy

CityCat4

planc, Это проблемы ребят 🙂 Не, может быть в бубунте что-то особенное сделано, я просто не работал в ней никогда. Но приходилось неоднократно таскать наработки между центосами и FreeBSD (не между ними конечно же, а между несколькими центосами и несколькими FreeBSD). Так вот там оказалось проще освоить местные пакетные менеджеры и паковать наработки в пакеты, при установке которых yum или pkg_add сам поставит депенды.

Но здесь конечно у каждого свой Совенок 🙂

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru