Russian Qt Forum
Ноябрь 05, 2024, 22:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Необходимо перенести свою прогу на Linux  (Прочитано 27866 раз)
ритт
Гость
« Ответ #15 : Ноябрь 07, 2008, 06:50 »

все видели инсталлятор нвидиавских дров?
вообще-то это скрипт Смеющийся

и что? абсолютно неважно как и чем там всё упаковано и как выглядит процесс установки - факт, что набор бинарей один (для определённого таргета). модуль ядра - вот тут да, проблемка...мажорок ядра-то сколько? а ещё конфиги отличаются...вот здесь и имеется необходимость в сырцах - быстренько собрали модуль, положили куда надо, запустили - и оп-па...
а теперь откройте бинари и посмотрите с какими либами каких версий слинковано Улыбающийся
Записан
vaprele07
Гость
« Ответ #16 : Ноябрь 07, 2008, 07:37 »

а что мешает собрать кутэ-прогу без глибц оставив только зависимость от кутэ и платформы  Смеющийся
Записан
ритт
Гость
« Ответ #17 : Ноябрь 07, 2008, 08:01 »

даже не знаю как тебе сказать...кутэ зависит от платформы, а под линухами платформа - это ядро и глибси Улыбающийся
это не говоря уже о либах, зависящих от глибси, от которых зависит кутэ...
« Последнее редактирование: Ноябрь 07, 2008, 08:03 от Константин » Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #18 : Ноябрь 07, 2008, 09:48 »

я все таки хотел бы сказать - собрать можно
но бинарник БУДЕТ большой, и там не будет разве что ядра. Смеющийся
Записан
Hort
Гость
« Ответ #19 : Ноябрь 07, 2008, 10:19 »

спасибо всем за ответы. нашел интересную сталью вчера
http://citkit.ru/articles/281/
но теперь вопрос как подготовить свои исходники к распространению?
Записан
vaprele07
Гость
« Ответ #20 : Ноябрь 07, 2008, 10:24 »

я не про само кутэ, а про приложение написанное с использованием кутэ.
Записан
ритт
Гость
« Ответ #21 : Ноябрь 07, 2008, 10:28 »

а с этим-то какая проблема? вычисти из файлов символ \r, приложи почитайку, файл инсталл и текст лицензии. в почитайке укажи кого ругатьблагодарить и куда контрибутить...вроде, всё.
а, ну и сам собери на парочке лялихов чтобы убедиться в компилябельности Улыбающийся
Записан
ритт
Гость
« Ответ #22 : Ноябрь 07, 2008, 10:34 »

я не про само кутэ, а про приложение написанное с использованием кутэ.
т.е. не писать платформозависимый код? согласен. пишем в зависимостях "Qt 4.3" и не ломаем голову вопросами бинарной совместимости...но это позволительно только при распространении исходников, а речь-то велась о чудо-пакете под разные дистры...
по этому поводу я писал - допотопный глибси 2.2, старый гцц, минимум внешних зависимостей - и будет счастье Улыбающийся
Записан
Hort
Гость
« Ответ #23 : Ноябрь 07, 2008, 11:07 »

а с этим-то какая проблема? вычисти из файлов символ \r, приложи почитайку, файл инсталл и текст лицензии. в почитайке укажи кого ругатьблагодарить и куда контрибутить...вроде, всё.
а, ну и сам собери на парочке лялихов чтобы убедиться в компилябельности Улыбающийся
всмысле в почитайке написать - типа делайте qmake и make? обычно ж делают конфигурационный скрипт чтобы потом установилось в неообходимые дирректории (стандартный набор команд ./configure & make & make install). а qmake скомпилит и запихнет в ту деректорию, которая в *.pro файле, или както можно указать стандартную директорию для программ в нем?
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #24 : Ноябрь 07, 2008, 13:00 »

Кстати, по поводу размера статического исходника. На самом деле, размер обычной программы (типа мессенджера например) в статическом виде, куда засунуты все зависимые библиотеки, будет ~25Mb. Ужимается это дело в 4-5Mb. Для пользователя такие размеры вполне приемлемы.

Я вот все понять не могу - бинарная совместимость - это проблема линуха. Проблема гигантская, из-за которой линух не развивается какнадо (1% десктопов). Проблема касается прежде всего в сложности установки программ. Обычный пользователь поставлен в условия "нет в репозитарии - нет программы". То есть на лицо зависимость от майнтейнера при таком простом деле как установка нужного приложения.

Статическая линковка вроде как должна решать проблему. Но статитику под линух мало кто использует, не развивают ее (хотя в MS Singularity на это сделана одна из главных ставок как борьба с dll hell). То, что сейчас есть в Linux, это просто вкомпиливание кода зависимых библиотек в бинарь. Отсюда и размеры.

А почему бы не пойти дальше? Чаще всего из библиотеки используется на самом деле 10-20% возможностей. Очень часто вообще, 2-3 функции. Так почему бы не сделать такой инструмент, который будет оставлять в коде бинаря только используемый код? Понятно, что готовый бинарь так просто не преобразуешь. А вот если компилить из исходников (из объектников) то вся информация о том, что используется, есть. В результате можно получить программу - "вещь в себе", весь код внутри, она работает так, как ее сделал программист, она не глючит из-за смены подверсии какой-нить либы или из-за того что по каким-то соображениям либа в конкретном дистре собрана без поддержки нужной функции. И она небольшая. И содержит только реально работающий код. Вот если такое когда-нибудь в линухе появится, тогда будет прорыв. А сейчас - барахтанье с исходниками, репозитариями, бактреками и прочими залипухами, вместо того чтоб дать пользователю возможность скачать прогу, установить и использовать.
Записан

Собираю информацию по крупицам
http://webhamster.ru
ритт
Гость
« Ответ #25 : Ноябрь 07, 2008, 16:04 »

xintrea, твой опыт работы в линух-системах?
Записан
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« Ответ #26 : Ноябрь 07, 2008, 21:08 »

xintrea, твой опыт работы в линух-системах?

Вот такой опыт, что гарантированно работающую статику создать практически нереально. Хотя, вроде у SkyPe получилось. Установка из статического инсталлятора - Qt, звук, все работает.
Записан

Собираю информацию по крупицам
http://webhamster.ru
Вячеслав
Гость
« Ответ #27 : Ноябрь 08, 2008, 13:21 »

Я вот все понять не могу - бинарная совместимость - это проблема линуха. Проблема гигантская, из-за которой линух не развивается какнадо (1% десктопов). Проблема касается прежде всего в сложности установки программ. Обычный пользователь поставлен в условия "нет в репозитарии - нет программы". То есть на лицо зависимость от майнтейнера при таком простом деле как установка нужного приложения.
1) в форточках еще хуже так-как QtCore4.dll  может относиться к любой кутехе версии 4 .... да и либ этих может быть как грязи ...
2) для обычного пользователя - _нафиг_ не надо знать _как_ собираюиться проги под линуксом.
3) _Если_ он (обычный пользователь) хочет использовать нечто не стандартное ( чего нет в deb rpm etc..) , то он вполне может прочитать глазками базовые инструкции по сборке Подмигивающий 

А струмент есть .... - жабой зоветься jit в частности Подмигивающий Но для плюсов .... чего-то моя совневаеться ... Как определить что используеться , а что нет ? Да и в случае с кутехой - connect хде-нибудь в глубине либы на какой-нибудь служебный слот - как такое отлавливать ? про косвенные вызовы функций - я вообще молчу ... опять-таки с vmt чего делать ? Это уже AI нужон ж) Я уж лучше по старинке spec'и для rpm или deb'ов писать буду Подмигивающий
Записан
ритт
Гость
« Ответ #28 : Ноябрь 08, 2008, 14:24 »

скачай smplayer и загляни в папочку "debian-rvm" - примерно так и следует распространять исходники, если у самого нет возможности собирать пакеты под различные популярные дистры - кому нужно будет, сам состряпает себе пакет по спекам...
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #29 : Ноябрь 08, 2008, 19:01 »

А почему бы не пойти дальше? Чаще всего из библиотеки используется на самом деле 10-20% возможностей. Очень часто вообще, 2-3 функции. Так почему бы не сделать такой инструмент, который будет оставлять в коде бинаря только используемый код?

Этот инструмент называется ld. При статической компиляции он выбрасывает неиспользуемые данные
Записан
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 23.