Разпространяване на направени с Qt програми за Linux
Страницата е създадена на:15 април 2019 и редактирана на:15 април 2019
Изготвянето на пакети за Linux, съдържащи необходимите библиотеки за изпълнение на направена с Qt програма вече може да се прави с предназначен за целта инструмент:
https://github.com/probonopd/linuxdeployqt
Инструментът linuxdeployqt представлява Qt проект и при необходимост може да се компилира от изходен код с Qt Creator. Компилиране може да се наложи, например, ако ще го използвате за 32 битови системи, защото готовият изпълним файл е за 64 битови системи.
Бих препоръчал изпълнимият файл, който се изтегля от адрес:
да бъде преименуван само на linuxdeployqt и да се премести в bin директорията на Qt, която да бъде добавена в променливата $PATH. (Вижте: тук.)
Създаването на изпълним пакет
за разпространение на програма, се
състои в поставяне на изпълнимият й
файл в отделна директория и изпълнение
на linuxdeployqt. Например, ако изпълнимият
файл е с име untitled и се намира в
директория:
build-untitled-Desktop_Qt_5_9_1_GCC_64bit-Release,
от
терминал изпълняваме командите:
cd build-untitled-Desktop_Qt_5_9_1_GCC_64bit-Release
mkdir release
cd release
cp ../untitled .
linuxdeployqt untitled
В този пример се създава поддиректория release. Това което трябва да се предостави на потребителите е цялото съдържание на тази директория. То може да се архивира и разпространява като .tar.gz файл.
В Ubuntu 17.04
1. За правилно създаване на изпълним файл от тип executable (application/x-executable) трябва в .pro файла на проекта да има ред:
QMAKE_LFLAGS += -no-pie
Вижте: В Ubuntu 17.04
2. Използването на linuxdeployqt, дава съобщение за грешка, което означава, че не може да намери библиотеката libjasper.so. Тази библиотека действително липсва в Ubuntu 17.04 и трябва да се инсталира, от хранилище за пакети на по-стара версия на Ubuntu. (Вижте: https://stackoverflow.com/questions/43484357/opencv-in-ubuntu-17-04/43489831 ) За добавяне на тази библиотека във файл /etc/apt/sources.list се добавя ред:
deb http://us.archive.ubuntu.com/ubuntu/ yakkety universe
След което се изпълняват командите:
sudo apt-get update
sudo apt-get install libjasper-dev
Предишна страница: Разпространяване на направени с Qt програми за iOS
Следваща страница: Работа по проекти с отворен код