Установка cqtdeployer на Ubuntu 20.04

Устанавливаем на Ubuntu 

sudo apt-get install cqtdeployer

или скачиваем cqtdeployer в виде .deb файла и устанавливаем

sudo dpkg -i CQtDeployer_1.6.2268.24847be_Linux_x86_64.deb

или

wget https://site.ru/package.run
chmod +x package.run
./package.run

Затем

cqtdeployer -bin prog -qmake ~/Qt5.12.12/5.12.12/gcc_64/bin -qmlDir ./

И получаем сборку нашей программы папка DistributionKit с каталогами:

DistributionKit cqtdeployer на Ubuntu каталоги


Если появится ошибка:

Project error: Unknown module(s) in QT: qml quick

Устанавливаем qtdeclarative5-dev

sudo apt-get install qtdeclarative5-dev

и коллекцию компиляторов g++/GNU

sudo apt install build-essential


Если появилась ошибка

Info: Deploy …
Info: The targetDir option is not used. CQtDeployer will use default target dir :/home/ubuntu/Qt5.12.12/Examples/Qt-5.12.12/demos/prog/DistributionKit
Warning: Failed to set targets
Error: Failed to initialize targets or extra data!
Info: Use bin or extraData optins. And check input pathes.
Error: Deploy failed!
Error: The CQtDeployer fail to read configuration.

CQtDeployer Failed to initialize targets or extra data

Устанавливаем разрешения для Ubuntu 20.04

sudo snap connect cqtdeployer:process-control
sudo snap connect cqtdeployer:removable-media
sudo snap connect cqtdeployer:system-backup

Вводим команду с targetDir:

cqtdeployer -bin prog -qmake ~/Qt5.12.12/5.12.12/gcc_64/bin -qmlDir ./ -targetDir ./

или переустанавливаем cqtdeployer, следующем образом

sudo snap install cqtdeployer —classic


Собираем программу для Qt Creator 

cqtdeployer -bin prog -qmake ~/Qt5.12.12/5.12.12/gcc_64/bin -qmlDir ./

Если появится ошибка

/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34′ not found (required by /opt/CQtDeployer/bin/CQtDeployer)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29′ not found (required by /opt/CQtDeployer/lib/libDeploy.so)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33′ not found (required by /opt/CQtDeployer/lib/libpe-parse.so)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29′ not found (required by /opt/CQtDeployer/lib/libpe-parse.so)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33′ not found (required by /opt/CQtDeployer/lib/libzip.so)

Проверяем установленные версии GLIBCXX

strings /lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
……………………..
……………………..
………………………
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH

Обновляем GLIBCXX командами

sudo apt-get update

sudo apt-get install gcc-4.9

sudo apt-get upgrade libstdc++6

sudo apt-get dist-upgrade

Проверяем

strings /lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

Видим обновление

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
……………………..
……………………..
………………………
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_DEBUG_MESSAGE_LENGTH

Опять вводим

cqtdeployer -bin prog -qmake ~/Qt5.12.12/5.12.12/gcc_64/bin -qmlDir ./

Видим ошибка

/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34′ not found (required by /opt/CQtDeployer/bin/CQtDeployer)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33′ not found (required by /opt/CQtDeployer/lib/libpe-parse.so)
/opt/CQtDeployer/bin/CQtDeployer: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33′ not found (required by /opt/CQtDeployer/lib/libzip.so)

Проверяем

strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC

Вывод

GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
……………………..
……………………..
………………………

GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.30
GLIBC_PRIVATE
GNU C Library (Ubuntu GLIBC 2.31-0ubuntu9.9) stable release version 2.31.

Из сообщения, следует, что Ubuntu поддерживает последнюю версию GLIBC 2.31, версии 2.31 и выше не поддерживает, поэтому необходимо обновить Ubuntu 20.04 на более новую версию или вместо пакета CQtDeployer_1.6.2268.24847be_Linux_x86_64.deb установить более старую версию.

И таким образом, программа будет работать вне ОС Ubuntu на другом компьюторе.

Для компилирования приложений под 32 разрядные системы, необходимо установить:

sudo apt-get install gcc-multilib g++-multilib

В .pro файл дописать:

QMAKE_LFLAGS+=-m32

QMAKE_CXXFLAGS += -m32

172

Leave a Reply

Ваш адрес email не будет опубликован.