Russian Qt Forum

Компиляторы и платформы => Linux => Тема начата: Fregloin от Март 12, 2013, 10:32



Название: Линковка библиотек при сборке и при запуске на конечном оборудовании
Отправлено: Fregloin от Март 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, что бы кешировать ее.



Название: Re: Линковка библиотек при сборке и при запуске на конечном оборудовании
Отправлено: Alex Custov от Март 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/
...


Название: Re: Линковка библиотек при сборке и при запуске на конечном оборудовании
Отправлено: Fregloin от Март 13, 2013, 12:36
Спасибо! Вот это я и ожидал услышать. А где можно почитать по поводу, в каких каталогах хранить свою программу, либы, конфиги и данные в Unix системах? С виндовсом там попроще...


Название: Re: Линковка библиотек при сборке и при запуске на конечном оборудовании
Отправлено: Alex Custov от Март 13, 2013, 16:14
Спасибо! Вот это я и ожидал услышать. А где можно почитать по поводу, в каких каталогах хранить свою программу, либы, конфиги и данные в Unix системах? С виндовсом там попроще...

http://www.linuxfoundation.org/collaborate/workgroups/lsb/fhs