LINUX.ORG.RU

Путь к либам


0

0

Как заставить программу искать определенную разделяемую библиотеку в текущем каталоге? В данном случае нужно заставить подгружать libmysqlclient.so.16 лежащую в одном каталоге и исполняемым файлом


в одном каталоге C исполняемым файлом

T-34
() автор топика

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD"

snizovtsev ★★★★★
()
Ответ на: комментарий от UVV

Корректным ли будет решение распространять cgi написанный на Cи, с пару тройкой либ (libmysqlclient) и sh скриптом который будет вызываться апачем. В свою очередь sh cкрипт будет устанавливать LD_PRELOAD и вызывать целевую программу?

T-34
() автор топика
Ответ на: комментарий от T-34

Можно ведь подгружать libmysqlclient через dlopen???

T-34
() автор топика
Ответ на: комментарий от T-34

Что делает такого особенного твой скрипт на Си, чего не достичь "традиционными" средствами -- python. php, ruby?

kondor ★★★
()
Ответ на: комментарий от mv

> LD_PRELOAD=/path/to/libmysqlclient.so.16 xxx

Это же для того, чтобы грузить либу, которую бинарник сам не просит. А если просит, то выше упомянутое LD_LIBRARY_PATH помогает найти либу в нужном месте.

const86 ★★★★★
()
Ответ на: комментарий от const86

Насколько я понимаю, LD_PRELOAD гарантирует, что указанная библиотека будет загружена первой (и, соответственно, символы из неё заменят такие же из других библиотек). ИМХО если такая же библиотека есть и в системе - лучше LD_PRELOAD.

slav ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.