2012-01-20 6 views
4


В Linux (Ubuntu) Я пытаюсь запустить инструмент, и в нем отображается ошибка «библиотека отсутствует». У меня нет разрешения на установку чего-либо в системе (или просто sudo невозможно из учетной записи пользователя).
Возможно ли установить отсутствующую библиотеку (libstdC++. So.6 в моем случае) в моем домашнем каталоге (без sudo) и изменить переменные среды и т. Д., Чтобы все другие инструменты/программы могли его найти?установить библиотеку в домашний каталог

ответ

3

Да, при условии, что библиотека находится в /home/user/lib. Вы можете установить переменную окружения LD_LIBRARY_PATH, чтобы найти lib. LD_LIBRARY_PATH=/home/user/lib, который найдет библиотеку. Если вам нужно скомпилировать его самостоятельно, вы захотите использовать configure --prefix=/home/user.

Я удивлен, что libstdc++.so.6 уже недоступен в системе. Взгляните в /usr/lib/x86_64-linux-gnu. Если бы ваша программа не была многозначительной.

+0

Я добавил экспорт LD_LIBRARY_PATH = "/ usr/lib" в мой .bashrc (потому что locate libstdC++, поэтому показывает /usr/lib/libstdc++.so.6), но теперь я получаю ошибку «неправильный ELF-класс: ELFCLASS64»: ( –

+0

Похоже, что у вас есть проблемы с 32-разрядным и 64-разрядным версиями. Чтобы обнаружить типы всех, выполните «файл libstdC++. So.6» и «файл youprogram». Также «uname -a». Это должно показать вам, что такое ваша система и что Я предполагаю, что ваша программа представляет собой 32-битную предварительно скомпилированную двоичную копию где-то. Вероятно, будет проще всего перекомпилировать ее из источника на целевой машине. – Marc

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