Почему компоновщик ищет библиотеку в пути, используемом для компиляции в Linux

Я строю общую библиотеку с опцией
«-L / my / path / -lxxx.so»

Теперь я использую dlopen для динамического связывания этой библиотеки с моим приложением

pvHandle = dlopen (pszLibName, RTLD_LAZY | RTLD_GLOBAL);

Но когда я выполняю это показывает сообщение об ошибке
/my/path/libxxx.so: невозможно открыть общий объектный файл: нет такого файла или каталога

libxxx.so доступен в / usr / local / lib, и я добавляю этот путь в LD_LIBRARY_PATH

Есть идеи, что я делаю не так?
заранее спасибо

2

Решение

Бежать ldconfig команда. Также см. Справочную страницу ldconfig Команда, вы можете получить представление об этом.

вам нужно добавить путь к файлу /etc/ld.so.conf,

ИЛИ ЖЕ

дать полный путь, как

dlopen("/some/path/to/lib.so",  RTLD_LAZY | RTLD_GLOBAL);
0

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector