2013-09-23 6 views
0

я получаю следующее сообщение об ошибке запуска моей программы:библиотека LDD не нашел

ошибка при загрузке разделяемых библиотек: libnetcdf.so.6: не удается открыть общий объектный файл: Нет такого файла или каталога

Точка libnetcdf.so.6 - это старая версия библиотеки, я удалил ее и построил новую.

Так что, когда я пытаюсь ldd я вижу:

libnetcdf.so.7 => /usr/local/lib/libnetcdf.so.7 (0x00007f70f8c4b000) 

но

Почему эта старая ссылка? Что я могу сделать, чтобы решить?

ответ

3

Вам нужно будет повторно связать ваше приложение libnetcdf.so.7 так выглядит приложение для этого, а не .6

Вы можете иметь символическую ссылку, что компоновщик будет смотреть на без номера версии (libnetcdf.so), если нет у вас, возможно, потребуется создать его перед повторным сшиванию:

ln -s libnetcdf.so.7 libnetcfd.so 

Если вы не можете повторно связать приложение, то вы можете создать символическую ссылку, чтобы сделать внешний вид приложения в вашей новой библиотеке (хотя это может привести к ошибкам сегментации, если версии библиотек не совместимы с бинарными), чтобы указать на фактический файл .so:

ln -s libnetcfd.so.7 libnetcfd.so.6 

Это приведет к тому, что приложение найдет необходимый ему общий объект, но не является идеальным решением.

+0

благодарит за ответ! – user2617702

+0

Без проблем - рад помочь. Можете ли вы отметить это как принятое решение? –

Смежные вопросы