Russian Qt Forum
Ноябрь 23, 2024, 14:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Проблема запуска qt приложения
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Проблема запуска qt приложения (Прочитано 9773 раз)
vohulg
Гость
Проблема запуска qt приложения
«
:
Сентябрь 05, 2013, 07:05 »
Доброго дня.
Такая проблема возникла при запуске скомпилированного приложения.
На Slackware 14 в QTCreator 5 скомпилировал приложение. Затем исполняемый файл перенес на другую машину с установленной такой же Slackware 14, но без QTCreator. Для того чтобы приложение запустилось я копирую все недостающие библиотеки (какие недостает я проверяю через команду $ ldd myappl) из машины где я компилировал в машину без QTCreator. ldd находит все нужные библиотеки. Но при запуске возникает ошибка:
"Failed to load platform plugin "xcb". Available platform are:
Aborted"
Кто знает в чем может быть проблема. И возможно ли скомпилировать так чтобы библиотеки QT сразу включились в исполняемый файл, пусть даже он весит много.
Спасибо
Записан
Serr500
Гость
Re: Проблема запуска qt приложения
«
Ответ #1 :
Сентябрь 05, 2013, 08:20 »
Цитата: vohulg от Сентябрь 05, 2013, 07:05
QTCreator 5
Нет такого зверя. Есть Qt5, а QtCreator - IDE для Qt и его последняя версия - 2.8.1.
Цитата: vohulg от Сентябрь 05, 2013, 07:05
Для того чтобы приложение запустилось я копирую все недостающие библиотеки (какие недостает я проверяю через команду $ ldd myappl)
ldd не покажет все библиотеки. Есть ещё плагины, которые ldd не покажет. Почитайте вот это:
http://qt-project.org/wiki/Deploying_a_Qt5_Application_Linux
.
Цитата: vohulg от Сентябрь 05, 2013, 07:05
возможно ли скомпилировать так чтобы библиотеки QT сразу включились в исполняемый файл
Возможно. Смотрите в сторону статической сборки.
P.S. Копирование недостающих библиотек не есть правильный путь в Linux. Рекомендуется создавать пакеты с зависимостями.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Проблема запуска qt приложения
«
Ответ #2 :
Сентябрь 05, 2013, 13:43 »
Цитата: vohulg от Сентябрь 05, 2013, 07:05
И возможно ли скомпилировать так чтобы библиотеки QT сразу включились в исполняемый файл, пусть даже он весит много.
Принято создавать пакеты, где указаны зависимости.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблема запуска qt приложения
«
Ответ #3 :
Сентябрь 05, 2013, 14:49 »
Цитата: Serr500 от Сентябрь 05, 2013, 08:20
P.S. Копирование недостающих библиотек не есть правильный путь в Linux. Рекомендуется создавать пакеты с зависимостями.
А как быть бедным разработчикам коммерческих приложений, которые не хотят покупать Qt, но хотят, чтобы их приложения работали даже на древних системах?
Записан
Qt 5.11/4.8.7 (X11/Win)
Serr500
Гость
Re: Проблема запуска qt приложения
«
Ответ #4 :
Сентябрь 05, 2013, 15:02 »
Не понял связи...
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблема запуска qt приложения
«
Ответ #5 :
Сентябрь 05, 2013, 15:06 »
Цитата: Serr500 от Сентябрь 05, 2013, 15:02
Не понял связи...
А чего тут не понятного
Коли хочешь, чтобы твоё приложение везде работало - носи всё с собой.
Записан
Qt 5.11/4.8.7 (X11/Win)
Serr500
Гость
Re: Проблема запуска qt приложения
«
Ответ #6 :
Сентябрь 05, 2013, 15:16 »
И причём здесь покупка коммерческой версии?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблема запуска qt приложения
«
Ответ #7 :
Сентябрь 05, 2013, 15:19 »
Цитата: Serr500 от Сентябрь 05, 2013, 15:16
И причём здесь покупка коммерческой версии?
А при том, что чтобы не таскать всё с собой, можно линковаться статически. Но не для коммерческих приложений.
Записан
Qt 5.11/4.8.7 (X11/Win)
Serr500
Гость
Re: Проблема запуска qt приложения
«
Ответ #8 :
Сентябрь 05, 2013, 15:39 »
А! Забыл про этот нюанс...
Прошу пардону...
Записан
kamre
Частый гость
Offline
Сообщений: 233
Re: Проблема запуска qt приложения
«
Ответ #9 :
Сентябрь 05, 2013, 16:17 »
Цитата: Alex Custov от Сентябрь 05, 2013, 13:43
Принято создавать пакеты, где указаны зависимости.
Если создать пакет, например, для ubuntu и затребовать в зависимости Qt 5.1, то как установить свою программу в ubuntu 12.04 LTS?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Проблема запуска qt приложения
«
Ответ #10 :
Сентябрь 05, 2013, 16:25 »
Цитата: kamre от Сентябрь 05, 2013, 16:17
Если создать пакет, например, для ubuntu и затребовать в зависимости Qt 5.1, то как установить свою программу в ubuntu 12.04 LTS?
Добавить Qt5 через ppa? Я не говорю, что пакеты - единственно правильно, если нет другого выхода, что бывает очень редко, можно компилировать статически или таскать все dll с собой. И даже в этих случаях могут быть проблемы - Webkit не поддерживает статику, а в с случае с кучей DLL они должны быть скомпилированы на более старой системе.
Записан
vohulg
Гость
Re: Проблема запуска qt приложения
«
Ответ #11 :
Сентябрь 06, 2013, 14:18 »
Так я и не понял как конкретно определить список зависимостей. Если вы говорите что ldd показывает не все, то что показывает все.
В этой статье
http://qt-project.org/wiki/Deploying_a_Qt5_Application_Linux
описано что для определния зависимостей использует ldd
Then I started to search how to find the dependencies of my app. I found that I have to use the ldd tool
Потом в описании есть описание моей проблемы - Later I spent many hours finding out why my installed app cannot start: I had to include the folder platforms and the file libqxcb.so from the /path/to/Qt/plugins/ into the DEB package. And in addition I had to install the library libQt5DBus.so.5, since libqxcb.so requires it.
То есть человек также утилитой ldd определил и затем скопировал в пакет все выведенные библиотеки, а приложение не запускается и просит какой то пакет xcb.
Насколько я понял переведя эти предложения, что он скопировал папку /path/to/Qt/plugins/platforms/ в пакет.
Я тоже так сделал, но только засунул папку /path/to/Qt/plugins/platforms/ рядом с исполняемым файлом. В результате ошибка немного поменялась:
"Failed to load platform plugin "xcb". Available platform are:
linuxfb
minimal
offscreen
xcb
Aborted"
Как загрузить эти платформы ?
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Проблема запуска qt приложения
«
Ответ #12 :
Сентябрь 06, 2013, 14:30 »
Цитата: vohulg от Сентябрь 06, 2013, 14:18
Так я и не понял как конкретно определить список зависимостей. Если вы говорите что ldd показывает не все, то что показывает все.
Способов много. Вот хотя бы один:
Код
Bash
LD_DEBUG
=libs
<
your_program
>
2
>&
1
>
/
dev
/
null
|
grep
'calling init:'
|
cut
-f
3
-d
':'
Записан
Qt 5.11/4.8.7 (X11/Win)
alex312
Хакер
Offline
Сообщений: 606
Re: Проблема запуска qt приложения
«
Ответ #13 :
Сентябрь 07, 2013, 08:50 »
vohulg
, вы проверяете ldd свое приложение. так проверте с помощью ldd и плагин libqtxcb.so, посмотрите что ему не хватает.
Записан
vohulg
Гость
Re: Проблема запуска qt приложения
«
Ответ #14 :
Сентябрь 09, 2013, 07:23 »
Цитата: alex312 от Сентябрь 07, 2013, 08:50
vohulg
, вы проверяете ldd свое приложение. так проверте с помощью ldd и плагин libqtxcb.so, посмотрите что ему не хватает.
Спасибо, помогло. Не хватало libQt5Dbus для /path/to/Qt/plugins/platforms/*
Причем получается что для запуска приложения надо чтобы в одной папке с исполняемым файлом лежала папка /platforms c содержимым из библиотеки Qt (/path/to/Qt/plugins/platforms/*)
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...