Обновление
Я был дураком - я проверил, существует ли файл (в той же папке), прежде чем передать его в dlopen()
.. поэтому вопрос недействителен, я его закрою.
Оригинальный вопрос
Для execuable, которому нужно связать с кучей общих библиотек в другой папке, вы можете просто сделать export LD_LIBRARY_PATH=/some/other/folder
, а затем, когда вы запустите ваш exectuable, он сможет их найти - и все это работает, как и ожидалось.
Однако одно из моих приложений использует dlopen () для открытия общей библиотеки во время выполнения (в виде подключаемого модуля). Я использую dlopen("libsome_lilb.so", RTLD_NOW)
.
Итак, это работает, если плагин совместно используемой библиотеки находится в той же папке, но не в другой папке. Итак, я установил LD_LIBRARY_PATH и повторил попытку, но все равно не смог найти библиотеку.
Это относится к этому вопросу: c-linux-dlopen-cant-find-so-library
Но у этого OP, похоже, есть проблема этой проблемы, когда они пытаются открыть .so в той же папке ... поэтому я не вижу там решения.
Не совсем уверен, с чем повозиться сейчас ... может быть, некоторые из вариантов dlopen("name", options);
? (это предположение)