Я просто хочу дать исполняемый файл и возможно позволить другому пользователю (также рабочая человечность) для загрузки qt5 библиотеки (не версия разработки) для запуска приложения.
Я не интересуюсь компиляцией статической версии QT только для создания этого исполняемого файла сам содержавшим.
сверение ldd
Я продолжал добираться, определенное освобождает, которые кажутся необходимыми
sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libqt5network5 libqt5printsupport5
говорит, что мне уже установили последние версии.
Тем не менее приложение не работает. что не так? который освобождает время выполнения, я должен привести в порядок для получения исполняемой находки все символы?
Я полагаю, что существует несколько методов, которые могут использоваться. Я перечислил один метод ниже, и это - рекомендуемый метод в документации развертывания, которую я дал в комментарии.
Я использую стандартный новый спокойный проект Приложения Виджетов под названием HelloWorld для этого примера, и это было скомпилировано в режиме выпуска, и получающийся файл называют "HelloWorld". Этот пример также предполагает использование x64.
Принятие, которое мы запускаем с корневой папки под названием MyApp, копируют исполняемый файл "HelloWorld" в него. Следующие библиотеки затем должны быть скопированы от QtInstallationFolder/gcc_64/lib до этой папки:
Кроме того, скопируйте следующую библиотеку от QtInstallationFolder/gcc_64/plugins/platforms до MyApp/platforms:
Скопируйте и вставьте следующее в текстовый редактор и сохраните это в папку 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 файла используйте название приложения.
Надежда, которая помогает.
Необходимо развернуть приложение, с этой целью я использую утилиту cqtdeployer
, которую можно установить от выпуски github
или
от snapstore
sudo snap install cqtdeployer
, который можно использовать следующим образом:
cqtdeployer -bin myApp -qmake path/to/my/qmake -qmlDir path/to/my/qml/files/dir
И Запущенное приложение с sh сценарием
, Если Вы будете использовать версию из снимка затем, удостоверяются, что у Вас есть все полномочия.