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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Распространить приложения в ubuntu без установки Qt  (Прочитано 6092 раз)
sergun1604
Гость
« : Май 20, 2012, 20:15 »

Здравствуйте уважаемые программисты!
Дайте совет или отправьте куда нибудь... Улыбающийся
Возможно ли распространять приложения разработанные в Qt,  не устанавливая qt? Приложения должны работать в ubuntu.
Например что бы бинарник скинул в убунту и он работает.
Если да, то пожалуйста подскажите как?

И еще как быть с конфликтом версий. Например обновился с kubuntu 11,10 на 12,04 соответственно обновилось qt.
а приложение уже работает на 10 машинах на убунту 11,10 и там нет возможности обновиться.
Вот подделал что в программе иду менять бинарник и он уже на 11,10 машинах вылетает. В прошлый раз с 11,04 на 11,10 что то с символами было. а теперь с 11,10 на 12,04 что то ncreport  стал отрубаться. Приходиться все машины тоскать на обновление... Поэтому собственно и вопрос первый возник.

Очень нужен совет бывалых, а то такое чувство что все под форточки пишут с минжв.
Записан
alexis031182
Гость
« Ответ #1 : Май 20, 2012, 20:32 »

Не "Бывалый"  Смеющийся , но, на мой взгляд, нужно приложение через пакетный менеджер ставить. Это если по хорошему. Ubuntu раз в пол-года обновляется, так что не так уж и много мороки: собрал пакет на dev/admin-машине и распространил на рабочие станции (можно вообще автоматизировать перенос и установку пакетов).
Записан
sergun1604
Гость
« Ответ #2 : Май 20, 2012, 21:42 »

это теория а как обновлять если машины друг от друга расположены на 10 ки км и нет у них доступа в инет. А как конфигурацию запоминать на своем и распространять на другие я не знаю. Спасибо за ответ
Записан
alexis031182
Гость
« Ответ #3 : Май 20, 2012, 22:06 »

это теория а как обновлять если машины друг от друга расположены на 10 ки км и нет у них доступа в инет.
Без переносного винчестера не обойтись, конечно.

А как конфигурацию запоминать на своем и распространять на другие я не знаю. Спасибо за ответ
Конфигурацию какую? Состав пакетов? Посмотрите справку по apt-get.

Если есть свободный диск, можно просто записать образ своей, только что вновь установленной системы и перезалить ею диски на удалённых рабочих станциях (правда резервные копии имеющихся там файлов надо будет делать). Да много в принципе вариантов, но все они в Вашем случае получается сводятся к переносу данных вручную с использованием внешнего носителя.
Записан
sergun1604
Гость
« Ответ #4 : Май 21, 2012, 08:19 »

Хороший совет надо подумать и все таки можно ли рашарить прогу не устанавливая qt?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #5 : Май 21, 2012, 08:30 »

Хороший совет надо подумать и все таки можно ли рашарить прогу не устанавливая qt?
Qt creator, если устанавливать не через репозиторий, а через установочник, скачаный с оф. сайта, так и устанавливается, тянет за собой все нужные библиотеки от  Qt. Смотри в строрну опции линкера "-Wl,-rpath".
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
sergun1604
Гость
« Ответ #6 : Май 21, 2012, 08:36 »

то есть скачать установочник QtCreator с оф сайта установить его а потом мой бинарник?
Я вот думаю реально ли с бинарником например положить библиотеки Qt и чтобы он дергал инфу оттуда и непривязывался к конкретному ядру?
Записан
V1KT0P
Гость
« Ответ #7 : Май 21, 2012, 09:07 »

Хороший совет надо подумать и все таки можно ли рашарить прогу не устанавливая qt?
А что мешает делать статическую сборку?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #8 : Май 21, 2012, 09:55 »

то есть скачать установочник QtCreator с оф сайта установить его а потом мой бинарник?
Нет, тебе надо линковать свой бинарник с опцией  "-Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH)", где DEFAULT_LIB_INSTALL_PATH - путь, можно относительный, где лежат библиотеки Qt.
Я вот думаю реально ли с бинарником например положить библиотеки Qt и чтобы он дергал инфу оттуда и непривязывался к конкретному ядру?
Без вышеозвученной опции линкера - нет, ибо приложение по умолчанию ищет разляемые библиотеки только в путях, описанных в $LD_LIBRARY_PATH. Гуглите Улыбающийся
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
sergun1604
Гость
« Ответ #9 : Май 21, 2012, 11:20 »

Цитировать
Нет, тебе надо линковать свой бинарник с опцией  "-Wl,-rpath,$(DEFAULT_LIB_INSTALL_PATH)", где DEFAULT_LIB_INSTALL_PATH - путь, можно относительный, где лежат библиотеки Qt.
не понимаю а через что линковать. я обычно просто копирую бинарник из папки debug в другую систему присваиваю права и все
Это не правильно?
Записан
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« Ответ #10 : Май 21, 2012, 12:26 »

Линкером линковать, при использовании Qt Creator'а просто этот этап выглядит прозрачно для пользователя. Нужно в .pro файл добавить строку типа
Код:
unix: QMAKE_LFLAGS += -Wl,-rpath,./libs
, что бы библиотеки искались кроме как в системных путях еще и в libs директории относительно исполняемого файла.
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
sergun1604
Гость
« Ответ #11 : Май 21, 2012, 22:42 »

круто не знал, завтра попробую поэксперементить. Спасибо огромное - отпишусь.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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