Russian Qt Forum
Ноябрь 23, 2024, 21:19
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Распространение на linux - системах без статической сборки
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Распространение на linux - системах без статической сборки (Прочитано 10185 раз)
yarick
Гость
Распространение на linux - системах без статической сборки
«
:
Октябрь 28, 2012, 21:54 »
Я компилирую мой проект на kubuntu с установленным qt-creator. Создаётся исполняемый файл, который можно легко запустить как "./myfile" на этой системе. Аналогично под Win7 создаётся exe.
Для распространения для винды я просто копирую dll-библиотеки типа qtCore4.dll и плагины в папку с программой - всё отлично работает.
А вот для линукса... Насколько я понял, нужно также копировать .so файлы в папку с программой?
Статически я собирать не хочу - мне кажется это плохой идеей. Мне нужно чтобы мою программку, например, можно было запустить со вставленной флешки, без прав суперюзера,
без установки
. На винде это возможно же
Записан
Bepec
Гость
Re: Распространение на linux - системах без статической сборки
«
Ответ #1 :
Октябрь 28, 2012, 22:00 »
Эммм... По-моему linux такая штука, что "просто" запустить файл у тебя не получится :/
Насчёт библиотек не уверен, но насколько я знаю, библиотеки должны быть скомпилированы под каждую *-nix систему. А их дофига. И меняются они очень часто и веток у них дофига
Ты возьмёшь на себя желание собирать библиотеки под каждую каждую систему и следить за их обновлениями и ... так далее.
PS обычно распространяются исходники, которые можно собрать.
Записан
alex312
Хакер
Offline
Сообщений: 606
Re: Распространение на linux - системах без статической сборки
«
Ответ #2 :
Октябрь 29, 2012, 08:45 »
Думаю стоит попробовать положить рядом с исполняемым файлом все необходимые *.so и настроить rpath.
Записан
V1KT0P
Гость
Re: Распространение на linux - системах без статической сборки
«
Ответ #3 :
Октябрь 29, 2012, 10:21 »
Цитата: alex312 от Октябрь 29, 2012, 08:45
Думаю стоит попробовать положить рядом с исполняемым файлом все необходимые *.so и настроить rpath.
Ты говоришь ересь, в Linux-е принято создавать RPM и DEB пакеты с зависимостями.
Записан
Serr500
Гость
Re: Распространение на linux - системах без статической сборки
«
Ответ #4 :
Октябрь 29, 2012, 10:24 »
Почему ересь? Автор же пишет
Цитата: yarick от Октябрь 28, 2012, 21:54
Мне нужно чтобы мою программку, например, можно было запустить со вставленной флешки, без прав суперюзера,
без установки
.
ИМХО, с rpath самый верный метод.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Распространение на linux - системах без статической сборки
«
Ответ #5 :
Октябрь 29, 2012, 11:37 »
Много проприетарного софта распространяется со своими либами. Основная фишка в том что собирать надо на как можно более старой системе, тогда с большей вероятностью программа будет запускаться на всех современных дистрах. Ну и тянуть с собой как можно больше библиотек по зависимостям.
Записан
Гугль в помощь
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Распространение на linux - системах без статической сборки
«
Ответ #6 :
Октябрь 29, 2012, 11:54 »
Цитата: V1KT0P от Октябрь 29, 2012, 10:21
Ты говоришь ересь, в Linux-е принято создавать RPM и DEB пакеты с зависимостями.
Цитата: yarick
Мне нужно чтобы мою программку, например, можно было запустить со вставленной флешки, без прав суперюзера, без установки.
Цитата: alex312
Думаю стоит попробовать положить рядом с исполняемым файлом все необходимые *.so и настроить rpath.
Либо своять запускающий скриптик в котором прописать переменную LD_LIBRARY_PATH.
Записан
Qt 5.11/4.8.7 (X11/Win)
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Распространение на linux - системах без статической сборки
«
Ответ #7 :
Октябрь 29, 2012, 14:25 »
Статический вариант в данном случае - то что надо.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Распространение на linux - системах без статической сборки
«
Ответ #8 :
Октябрь 29, 2012, 15:41 »
Цитата: Alex Custov от Октябрь 29, 2012, 14:25
Статический вариант в данном случае - то что надо.
Тогда в пакете должны быть исходники либо указание, где их можно получить. GPL однако)
Записан
Qt 5.11/4.8.7 (X11/Win)
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Распространение на linux - системах без статической сборки
«
Ответ #9 :
Октябрь 29, 2012, 17:29 »
Цитата: Alex Custov от Октябрь 29, 2012, 14:25
Статический вариант в данном случае - то что надо.
Статика это слишком сложно и не всегда срабатывает. Кажется вебкит не собирается статически.. еще какие-то проблемы были. И желательно весь стек системных библиотек пересобирать статически, не только Qt.
Записан
Гугль в помощь
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Распространение на linux - системах без статической сборки
«
Ответ #10 :
Октябрь 29, 2012, 17:41 »
Цитата: navrocky от Октябрь 29, 2012, 17:29
Статика это слишком сложно и не всегда срабатывает. Кажется вебкит не собирается статически.. еще какие-то проблемы были. И желательно весь стек системных библиотек пересобирать статически, не только Qt.
Нужно просто поставить соотвествующие -dev пакеты, почти всегда в них есть статические версии библиотек.
Записан
V1KT0P
Гость
Re: Распространение на linux - системах без статической сборки
«
Ответ #11 :
Октябрь 29, 2012, 21:31 »
Цитата: Serr500 от Октябрь 29, 2012, 10:24
Почему ересь? Автор же пишет
Цитата: yarick от Октябрь 28, 2012, 21:54
Мне нужно чтобы мою программку, например, можно было запустить со вставленной флешки, без прав суперюзера,
без установки
.
ИМХО, с rpath самый верный метод.
Извиняюсь, проглядел.
Цитата: navrocky от Октябрь 29, 2012, 17:29
Цитата: Alex Custov от Октябрь 29, 2012, 14:25
Статический вариант в данном случае - то что надо.
Статика это слишком сложно и не всегда срабатывает. Кажется вебкит не собирается статически.. еще какие-то проблемы были. И желательно весь стек системных библиотек пересобирать статически, не только Qt.
Вообще-то абсолютно все статически собирать нежелательно. Вроде как при статической линковки библиотеки для системных вызовов могут возникнуть проблемы.
Записан
navrocky
Гипер активный житель
Offline
Сообщений: 817
Погроммист
Re: Распространение на linux - системах без статической сборки
«
Ответ #12 :
Октябрь 30, 2012, 11:01 »
Если не собирать Всё статически, тогда вероятность отхватить конфликт версий повышается.
Skype, однако, вообще не тащит с собой библиотеки, использует все системные и при этом одна сборка для всех rpm-дистрибутивов и вторая для deb. Как им это удалось?
Записан
Гугль в помощь
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Распространение на linux - системах без статической сборки
«
Ответ #13 :
Октябрь 30, 2012, 15:55 »
Цитата: navrocky от Октябрь 30, 2012, 11:01
Если не собирать Всё статически, тогда вероятность отхватить конфликт версий повышается.
Skype, однако, вообще не тащит с собой библиотеки, использует все системные и при этом одна сборка для всех rpm-дистрибутивов и вторая для deb. Как им это удалось?
Не одна, у них есть пакеты для Debian и Ubuntu, для других систем работа не гарантирована. На самой убунту у них сборка для 10.04, то есть они рассчитывают на то, что все версии старше 10.04 обратно совместимы с 10.04 (так и есть), и поэтому этот deb пакет работает и на 11.х. Но если вдруг в 13.04 поломается ABI каких-то библиотек, то пакет перестанет работать.
«
Последнее редактирование: Октябрь 30, 2012, 15:58 от Alex Custov
»
Записан
vbi
Гость
Re: Распространение на linux - системах без статической сборки
«
Ответ #14 :
Январь 11, 2013, 01:58 »
А можете подробнее описать как же собрать RPM или DEB пакет из собранного в QT исполняемого файла и зависемых so-библиотек?
Я читал разные инструкции по сборе RPM, там какие-то исходники нужны, так сложно описано, я запутался... А мне только исполняемый файл и библиотеки запаковать...
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...