QT DEPLOY

1) Для Windows

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

Создаем папку D:\Deploy

Нашимаем сочетание клавиш Win, ищем в установленых программах в меню QT Creator что-то вроде Qt 5.15.2 (MinGW 8.1.0 64-bit)

win cmd deploy

Запускаем, вводим в появившемся окошке

cd D:\Deploy

deploy

Далее заходим в D:\QT_Samples\madCalc\Release

Копируем из нее в D:\Deploy файл программы, в моем случае madCalc.exe

Затем в окошке cmd пишем

windeployqt  madCalc.exe --quick

windeployqt

В итоге, в папке D:\Deploy появится куча файлов, включая файлы переводов.

deploy win

Если переводы вам не нужны, тогда можно ввести ту же команду, но с дополнительным ключом:

windeployqt  madCalc.exe --no-translations

 

2) Для Linux

Итак, начнем с того, что скачаем саму программу, которая будет скидывать необходимые библиотеки в папку с вашим приложением. Предложу 2 варианта: с моего сайта и с GitHub. Скачиваем файл linuxdeployqt-x86_64.AppImage.

2022 03 06 04 00 13

Затем сделаем файл исполняемым и скопируем его в папку с программами. Конечно, это делается под root.

chmod +x linuxdeployqt-x86_64.AppImage

mv ~/Загрузки/linuxdeployqt-x86_64.AppImage /usr/local/bin/linuxdeployqt

Проверим, получилось или нет:

linuxdeployqt --version

Ответ должен быть таким:

linuxdeployqt  (commit aeafcd2), build 13 built on 2022-01-28 22:37:07 UTC

 Теперь пропишем переменные окружения.

sudo nano ~/.bashrc

Записав там буквально следующее:

#add QT ENV
export PATH=/home/madmentat/Qt/5.15.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/madmentat/Qt/5.15.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/home/madmentat/Qt/5.15.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/home/madmentat/Qt/5.15.2/gcc_64/qml:$QML2_IMPORT_PATH

2022 03 06 04 50 40

Обновим bashrc внашей сессии:

source ~/.bashrc

В моем случае linuxdeployqt ругался, дескать, не прописаны пути к qmake. Я не шибко умный, поэтому сделал как было написано в первой же статье на эту тему. Точнее, решение нашлось где-то на StuckOverflow. Просто тупо установил этот qmake:

sudo apt install qt5-qmake

Теоретически, можно было бы где-то что-то там прописать вроде как с этими переменными окружения, описанными выше, но... Чего не хватало, так это поебать себе попусту мозги! Ну и наконец, столкнулся с такой проблемой, что моя ОС слишком крутая для linuxdeployqt. Поэтому пришлось использовать клю -unsupported-allow-new-glibc. Но это на шаг позже. Сначала, как и в случае с Windows, нам нужно взять нашу Qt программку из папки Release и скопировать в какую-нибудь отдельную директорию. А когда вы справитесь с этой задачей, то... Открываем ее в терминале.

cd /home/madmentat/SimplePadDeploy

2022 03 06 05 00 17

И теперь выполняем финальную сборку:

linuxdeployqt SimplePad -unsupported-allow-new-glibc

4

При попытке запустить программу на другом компьютере, скорее всего, вы увидете следующее сообщение:

permission

Дело в том, что сначала надо дать права на выполнение файла:

sudo chmod +x SimplePad

Теперь можно запускать:

./SimplePad

Но можно сделать вообще красиво.

ln ~/SimplePad /usr/local/bin/simplepad

Таким образом приложение можно будет запустить из консоли про помощи команды

simplepad

Ее же можно прописать в ярлык.

sudo nano /home/madmentat/.local/share/applications/SimplePad.desktop

[Desktop Entry]
Type=Application
Name=SimplePad
GenericName=SimplePad
Comment=My own pad with black-jack and whores
Exec=simplepad
Icon=/home/madmentat/SimplePad/simplePad.png
Terminal=false
Categories=GNOME;GTK;Utility;TextEditor;
Keywords=Text;Editor;Plaintext;Write;Simple;SimplePad;

2022 03 06 05 04 11

В итоге ваша программа запускается в системах, где не установлен Qt Creator. Пробовал на разных системах. Везде, где x11 - все ок. Где wayland - происходит какая-то херня. 

Часто решается следующей командой:

apt install libxcb-xinerama0 -y

Думаю, эту шнягу надо обязательно подтягивать вместе с вашим приложением при помощи инсталятора, каким бы он в итоге ни был - будь то полноценный deb-пакет или простенький bash-скрипт. Я часто пользуюсь кастомными CUBIC-сборками, там можно зарание установить все что вам может потребоваться.