Разпространение за Linux

Страницата е създадена на:15 април 2019 и редактирана на:15 април 2019

Изготвянето на пакети за Linux, съдържащи необходимите библиотеки за изпълнение на направена с Qt програма вече може да се прави с предназначен за целта инструмент:

https://github.com/probonopd/linuxdeployqt

Инструментът linuxdeployqt представлява Qt проект и при необходимост може да се компилира от изходен код с Qt Creator. Компилиране може да се наложи, например, ако ще го използвате за 32 битови системи, защото готовият изпълним файл е за 64 битови системи.

Бих препоръчал изпълнимият файл, който се изтегля от адрес:

https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage

да бъде преименуван само на 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

 

Направено с MyCMS. Copyright CC BY-ND 4.0.