|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
Путь к библиотеке в бинарнике20.12.2011, 16:55. Показов 7095. Ответов 30
Метки нет (Все метки)
Кто-нибудь в курсе, как задать относительный путь в .so-шке в бинарнике? К примеру, чтобы в одной папке с бинарем лежала so-шка и он к ней по относительному пути (./so_name.so) обращался. Че-то опцию никак отыскать не могу...
Спасибо
0
|
|
| 20.12.2011, 16:55 | |
|
Ответы с готовыми решениями:
30
Путь к внутренней библиотеке
Нужно в access прописать относительный путь к библиотеке |
|
65 / 65 / 5
Регистрация: 11.01.2009
Сообщений: 130
|
||
| 20.12.2011, 23:39 | ||
|
0
|
||
|
|
|||||||||||
| 20.12.2011, 23:53 | |||||||||||
|
потестил.
so`шка:
>gcc summ.c -shared -osumm.so прогу так: >gcc main.c -omain summ.so -Wl,-rpath=./ so`шка и прога лежат в одном каталоге. каталог в PATH не прописан. выполянем: > ./main; echo $? вывод: > 5 если же линковать так: >gcc main.c -omain summ.so -Wl,-rpath-link=./ или так: >gcc main.c -omain summ.so то при запуске получаем: ./main: error while loading shared libraries: summ.so: cannot open shared object file: No such file or directory значит -rpath свою работу делает.
1
|
|||||||||||
|
|
|||||||
| 21.12.2011, 00:00 | |||||||
|
Опция -rpath влияет уже на пути поиска во время исполнения (загрузки) и делает по сути дела то же самое, что и переменная окружения LD_LIBRRAY_PATH (только пути поиска зашивается в бинарник). Других способов задать пути поиска нет. Есть ещё дефолтные пути поиска (типа /lib, /usr/lib) и дефолтные системные пути поиска (что-то типа в файле /etc/ld.so.<чего-то там уже не помню>) Относительного пути поиска в run-time скорее всего нет. Процесс загрузки происходит следующим образом. Ядро загружает в память a.out и загружает в область динамических библиотек ld.so. Далее передаётся управление на ld.so. Т.е. в момент работы ld.so сам бинарник уже лежит в памяти, а потому для дальнейшей работы абсолютный путь для бинарника скорее всего не нужен и относительный путь поиска скорее всего будет трактоваться как относительный путь относительно каталога запуска (а не относительно каталога, в котором лежит бинарник) Если есть желание, то можно посмотреть в исходниках glibc: файл elf/dl-load.c функция open_path, пути поиска находятся в четвёртом параметре struct r_search_path_struct *sps http://sourceware.org/git/?p=g... 43;hb=HEAD Добавлено через 6 минут Запускать можно
1
|
|||||||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|||
| 21.12.2011, 01:11 [ТС] | |||
|
Добавлено через 31 секунду
0
|
|||
|
|
|
| 21.12.2011, 09:40 | |
|
Если на исполняемый файл на травить "readelf --dynamic a.out", то напечатаются динамические тэши. Среди них должно быть RPATH, которое появляется на основании опции -Wl,-rpath или -R (обе опции делают то же самое)
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
|
| 21.12.2011, 09:49 [ТС] | |
|
0
|
|
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 21.12.2011, 12:10 [ТС] | ||
мдя...неужели ребут так благоприятно сказался...
0
|
||
|
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
|
||
| 21.12.2011, 12:34 [ТС] | ||
Да, согласен, что ненормально... Я думал, что может дело в том, что запускал с опциями -L. -lmysqlclient, но теперь и такие команды нормально отрабатывают. Какой-то глюк, с чем связан, не знаю. Ладно, тему закрываю, всем спасибо, разобрались
0
|
||
| 21.12.2011, 12:34 | |
|
Помогаю со студенческими работами здесь
31
Как изменить путь к библиотеке, добавленной в References? При добавлении Flurry analytics Xcode ругается на путь к библиотеке Как в команде RegSvr32 правильно записать содержащий пробелы путь к регистрируемой библиотеке? Картинка в бинарнике... версия, авторские права в бинарнике Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|