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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Линковка библиотек при сборке и при запуске на конечном оборудовании  (Прочитано 5031 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Март 12, 2013, 10:32 »

Привет. Есть проект под Qt/Ubuntu.
Есть бинарник, есть библиотека (которая загружается вместе с бинарником, не плагин).
К примеру результаты компиляции хранятся так
$HOME/src/bin_out/bin - это бинарник qt-шный
$HOME/src/lib_out/libcore.0.1.0.so (+ symlinks на нее) - библиотека, которую использует бинарник.
Вот, я хочу создать deb пакеты установочные, что бы бинарник и либа ставились по следующим путям:
/usr/local/bin/mycompany/target/bin
/usr/local/lib/mycompany/target/lib
Так вот, вопрос, мне обазятельно в pro файле проекта указывать в директиве -L путь /usr/local/lib/mycompany/target/lib или можно $HOME/src/lib_out/?
Почему вопрос, потому что часто приходится устанавливать или удалять мои deb пакеты в целях тестирования...
Т.е. обазятельно указывать конечное расположение файла при линковке, или можно указать расположение либы в каталоге сборок?
Либу потом добавляю в /etc/ld.so.conf.d/mylib.conf и делаю ldconfig, что бы кешировать ее.

Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #1 : Март 12, 2013, 17:38 »

Так вот, вопрос, мне обазятельно в pro файле проекта указывать в директиве -L путь /usr/local/lib/mycompany/target/lib

Не нужно, потому что -L задаёт пути поиска при линковке. А загрузчик готового бинарника ищет библиотеки по заранее заданным в системе путям, и т.к. ты задаёшь свой путь в ld.so.conf, то он спокойно найдёт библиотеку по твоему пути. Единственное, что структура каталогов у тебя нестандартная. Такую структуру как ты хочешь обычно помещают в /opt:

/opt/mycompany/target/bin/
/opt/mycompany/target/lib/
/opt/mycompany/target/share/
...
Записан
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« Ответ #2 : Март 13, 2013, 12:36 »

Спасибо! Вот это я и ожидал услышать. А где можно почитать по поводу, в каких каталогах хранить свою программу, либы, конфиги и данные в Unix системах? С виндовсом там попроще...
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #3 : Март 13, 2013, 16:14 »

Спасибо! Вот это я и ожидал услышать. А где можно почитать по поводу, в каких каталогах хранить свою программу, либы, конфиги и данные в Unix системах? С виндовсом там попроще...

http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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