Вопрос по ldd, unix – LDD не может найти библиотеку в LD_LIBRARY_PATH

16

Я пытаюсь настроить систему и запустить ее, и у меня проблемы с общими библиотеками OpenMotif. У меня есть их каталог в LD_LIBRARY_PATH, но он все еще не может их найти.

Вот пример:

[[email protected] netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
[[email protected] netcool]# find /usr/ -name libXm.so.3 
/usr/lib64/libXm.so.3
[[email protected] netcool]# find /usr/ -name libXpm.so.4
/usr/lib64/libXpm.so.4
[[email protected] netcool]# echo $LD_LIBRARY_PATH
/opt/netcool/omnibus//platform/linux2x86/lib/:/opt/netcool//platform/linux2x86/lib/:/usr/lib/:/usr/lib64/

Я, вероятно, делаю что-то глупое, но я не могу думать ни о чем другом, чтобы попробовать.

РЕДАКТИРОВАТЬ: Чтобы ответить на пару вопросов, заданных ниже:

[[email protected] netcool]# export LD_LIBRARY_PATH
[[email protected] netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
[[email protected] netcool]# ldconfig
[[email protected] netcool]# ldd /opt/netcool/omnibus/platform/linux2x86/bin/nco_* |grep 'not found'
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXpm.so.4 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found
    libXm.so.3 => not found

Хорошо, просто попытался запустить один из исполняемых файлов:

# ./bin/nco_xigen 
/opt/netcool//omnibus/platform/linux2x86/bin/nco_xigen: error while loading shared libraries: libXm.so.3: wrong ELF class: ELFCLASS64

Это 32-битная / 64-битная вещь?

Да, LD_LIBRARY_PATH был установлен и экспортирован в ~ / .bash_profile coding_hero
Тыexport LD_LIBRARY_PATH? vhallac
Хорошая идея, но тот же результат. coding_hero
В духе хвататься за соломинку, вы могли бы бежатьldconfig? Matt
Вы повторно использовали .bash_profile в своей среде? Извините, что начал так просто, но обычно это базовые вещи, которые сбивают с толку опытных программистов ... #EDIT, кажется, вы это сделали, так как echo печатает правильные каталоги. Хм ... Matt

Ваш Ответ

2   ответа
14

export Ключевое слово говорит Bash отправлять любые переменные подпроцессам, иначе ldd никогда не увидит LD_LIBRARY_PATH.

12

которые я искал для 32-битных версий общих библиотек, у меня была установлена 64-битная версия. Глупая ошибка. LDD не выдал очень проницательного сообщения об ошибке, но двоичный файл появился, когда я попытался его запустить.

Похожие вопросы