Ubuntu ARM ldd не может найти библиотеку

У меня есть программа, которая прекрасно скомпилирована на Ubuntu ARM (12.04), но она не может работать из-за ошибок при компоновке. например libX11.so.6 не может быть найден, однако ясно, что в

/usr/lib/arm-linux-gnueabihf

ldconfig -v shows it as well

странно, когда я передаю LD_LIBRARY_PATH = / usr / lib / arm-gnueabihf / ldd (после разделяемой библиотеки), я получите сообщение

ldd: LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/: No such file or directory

Пока каталог явно существует. Что может быть не так? Я запускал sudo ldconfig.

2
задан 2 February 2013 в 03:22

1 ответ

Возможно, вы смешали ABI . В настоящее время существует несколько ABI для процессоров ARM, широко используемых из-за разнообразия процессоров ARM. Убедитесь, что у вас есть двоичный файл gnueabihf , а не двоичный файл gnueabi. Вы можете установить оба вида двоичных файлов в одной системе, но вы не можете связать оба вида библиотек в одном исполняемом файле. Это как 32-битные и 64-битные исполняемые файлы в системах x86.

С помощью LD_LIBRARY_PATH правильная команда для добавления переменной в среду на время выполнения команды ldd:

LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/ ldd /path/to/binary

Вы написали ldd LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/ /path/to/binary, что говорит ldd действовать на файл с именем LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/.

0
ответ дан 2 February 2013 в 03:22

Другие вопросы по тегам:

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