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

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

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Qt взять нужную библиотеку на другую Ubuntu  (Прочитано 14698 раз)
Zeka13
Гость
« : Апрель 27, 2012, 18:16 »

Всем доброго времени суток.
Мой проект собран с использованием библиотеки qwt

Речь пойдёт о Linux

У меня в системе установлен пакет libqwt-dev (библиотека в /usr/lib), собственно с этим пакетом к меня всё работает и на других Ubuntu с этим пакетом тоже, но если я пытаюсь запустить бинарник на Ubuntu без этого пакета, то получаю

./plot4: error while loading shared libraries: libqwt.so.6: cannot open shared object file: No such file or directory

Положить библиотеку просто рядом с бинарником, как я это делаю в маздае, не прокатило, как тогда поступить?

Заранее спасибо за ответы!
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Апрель 27, 2012, 18:28 »

user@host> export LD_LIBRARY_PATH=. ; ./my_cool_prog_with_qwt
Записан

Гугль в помощь
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #2 : Апрель 27, 2012, 18:48 »

Поставить пакет, как ни странно)
Записан
Zeka13
Гость
« Ответ #3 : Апрель 27, 2012, 20:38 »

navrocky, зачем?

Alex Custov
Цитировать
Поставить пакет, как ни странно)

P.S. надо чтоб как в винде, ничего от пользователя не требовалось установить!
Я думал это и так понятно ...
« Последнее редактирование: Апрель 28, 2012, 09:28 от Пантер » Записан
sudo
Гость
« Ответ #4 : Апрель 27, 2012, 23:05 »


P.S. надо чтоб как в винде, ничего от пользователя не требовалось установить!
Я думал это и так понятно ...

Собирать пакет, делать зависимости
Записан
Zeka13
Гость
« Ответ #5 : Апрель 27, 2012, 23:21 »

собирать пакет ради одной либы?

а больше никак? Шокированный
Записан
Bepec
Гость
« Ответ #6 : Апрель 28, 2012, 07:00 »

Это не винда. Это НЕ дружелюбный пользователю интерфейс. Это линукс Веселый
Записан
alexis031182
Гость
« Ответ #7 : Апрель 28, 2012, 08:43 »

Это не винда. Это НЕ дружелюбный пользователю интерфейс. Это линукс Веселый
Да, домохозяйки отдыхают Улыбающийся
Записан
alexis031182
Гость
« Ответ #8 : Апрель 28, 2012, 08:46 »

собирать пакет ради одной либы?

а больше никак? Шокированный
Так вроде ВСЕ приложения в Ubuntu собраны в пакеты. Если делать корректно, то собрать пакет нужно в независимости от того, использует ли программа дополнительные либы или нет.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #9 : Апрель 28, 2012, 09:57 »

navrocky, зачем?

Что зачем? Я тебе показал как подгружать либы из папки в которой лежит бинарь.  Ты ведь этого хотел?

А если ты хочешь совсем чтобы как в винде, то это отдельная тема, надо не только qwt тащить но и всю бороду из системных либ (Qt, Xlib....). Или пересобрать пол системы в статике и слинковать со всем этим статически свой бинарь.

Хороший пример - google earth. Посмотри какие либы он с собой тащит и как их загружает.

Правда это не тру. Правильней собрать готовые пакеты для каждой ОС по отдельности и указывать необходимые зависимости, чтобы пакетный менеджер все необходимое установил автоматически не напрягая пользователя.
« Последнее редактирование: Апрель 28, 2012, 10:07 от navrocky » Записан

Гугль в помощь
Bepec
Гость
« Ответ #10 : Апрель 28, 2012, 10:18 »

Собрать около 10-20 пакетов и постоянно их поддерживать Подмигивающий
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #11 : Апрель 28, 2012, 10:48 »

собирать пакет ради одной либы?

а больше никак? Шокированный

ты уверен,  что ради одной? Посмотри в ldd сколько зависимостей у программы, и не все они могут совпасть на другой машине. Поэтому принято делать пакеты и прописывать зависимости там.
Записан
Zeka13
Гость
« Ответ #12 : Апрель 28, 2012, 11:02 »

navrocky, мне пользователю говорить каждый раз в терминал просить лезть или делать системный вызов из кода можно?(сорри если что-то не своими словами называю)
alexis031182, а вот и нет
пример:
tuxboot для linux долгое время распространялся просто как один бинарник и отлично работал, у меня даже остался для 64x машину, если не верите, могу скинуть
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #13 : Апрель 28, 2012, 11:07 »

пример:
tuxboot для linux долгое время распространялся просто как один бинарник и отлично работал, у меня даже остался для 64x машину, если не верите, могу скинуть

Это статически слинкованный бинарник. Мне, например, не нравится загаживать систему отдельными файлами, которые идут без пакетов.
Записан
alexis031182
Гость
« Ответ #14 : Апрель 28, 2012, 11:12 »

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


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