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

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

Я не интересуюсь компиляцией статической версии QT только для создания этого исполняемого файла сам содержавшим.

сверение ldd Я продолжал добираться, определенное освобождает, которые кажутся необходимыми

sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5printsupport5

говорит, что мне уже установили последние версии.

Тем не менее приложение не работает. что не так? который освобождает время выполнения, я должен привести в порядок для получения исполняемой находки все символы?

0
задан 9 December 2016 в 00:37

2 ответа

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

Я использую стандартный новый спокойный проект Приложения Виджетов под названием HelloWorld для этого примера, и это было скомпилировано в режиме выпуска, и получающийся файл называют "HelloWorld". Этот пример также предполагает использование x64.

Принятие, которое мы запускаем с корневой папки под названием MyApp, копируют исполняемый файл "HelloWorld" в него. Следующие библиотеки затем должны быть скопированы от QtInstallationFolder/gcc_64/lib до этой папки:

  • libicudata
  • libicui18n
  • libicuuc
  • libQt5Core
  • libQt5DBus
  • libQt5Gui
  • libQt5Widgets
  • libQt5XcbQpa

Кроме того, скопируйте следующую библиотеку от QtInstallationFolder/gcc_64/plugins/platforms до MyApp/platforms:

  • libqxcb

Скопируйте и вставьте следующее в текстовый редактор и сохраните это в папку MyApp как HelloWorld.sh:

#!/bin/sh
appname=`basename $0 | sed s,\.sh$,,`

dirname=`dirname $0`
tmp="${dirname#?}"

if [ "${dirname%$tmp}" != "/" ]; then
dirname=$PWD/$dirname
fi
LD_LIBRARY_PATH=$dirname
export LD_LIBRARY_PATH
$dirname/$appname "$@"

Необходимо затем смочь запустить приложение от папки корневого каталога приложения с:

./HelloWorld.sh

Вышеупомянутое представляет минимальные библиотеки, требуемые для приложения GUI. Если бы Вы используете этот метод для своего приложения, и это пользуется дальнейшими библиотеками, чем упомянутые выше, необходимо было бы также скопировать их в корневую папку MyApp. Кроме того, при создании .sh файла используйте название приложения.

Надежда, которая помогает.

3
ответ дан 28 September 2019 в 01:29

Необходимо развернуть приложение, с этой целью я использую утилиту cqtdeployer

, которую можно установить от выпуски github

или

от snapstore

sudo snap install cqtdeployer

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

cqtdeployer -bin myApp -qmake path/to/my/qmake -qmlDir path/to/my/qml/files/dir

И Запущенное приложение с sh сценарием

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

0
ответ дан 28 September 2019 в 01:29

Другие вопросы по тегам:

Похожие вопросы: