У меня есть несколько общих / динамических библиотек, установленных в каталоге с песочницей. Я создаю несколько приложений, которые ссылаются на библиотеки. Я сталкиваюсь с тем, что, по-видимому, является разницей между OSX и Linux в этом отношении, и я не уверен, каково (лучшее) решение.
В OSX местоположение самой библиотеки записывается в библиотеку, поэтому, если ваши приложения ссылаются на нее, исполняемый файл знает, где искать библиотеку во время выполнения. Это работает, как и ожидалось с моей песочницей, потому что исполняемый файл выглядит там вместо общесистемных путей установки.
В Linux я не могу заставить это работать. По всей видимости, местоположение библиотеки отсутствует в самой библиотеке. Насколько я понимаю, вы должны добавить папки, содержащие библиотеки, в /etc/ld.so.conf и заново создать кэш ld, запустив ldconfig.
Мне кажется, это не помогает, потому что мои библиотеки расположены в домашнем каталоге пользователя. Похоже, что ldconfig это не нравится, что на самом деле имеет смысл.
Как я могу решить это? Я не хочу перемещать библиотеки из моей песочницы.