Как найти файлы, содержащие только буквенно-цифровые символы?

Команда lddпытается связать исполняемый файл или библиотеку с общими библиотеками в вашей системе точно так же, как это происходит при запуске/использовании. Он прочитает ссылки на библиотеки из данного файла и попытается найти их в вашей файловой системе и пути(LD_LIBRARY_PATH). Если он отображает «???», то это означает, что он не может найти некоторые библиотеки в вашей системе (и программа/библиотека, которую вы проверили, скорее всего, не запустится / не будет использоваться ).

Часто возникают проблемы с библиотеками при копировании файла (исполняемого файла или библиотеки общих объектов )из одной системы в другую. Причина в разных системных библиотеках -, даже если они отличаются только версией и существуют иным образом.

Иногда решение состоит в том, чтобы также скопировать отсутствующие библиотеки и поместить их в папку, включенную в LD_LIBRARY_PATH. Вы также можете установить эту переменную для этой цели или добавить новую папку, потому что вы не хотите устанавливать эти скопированные файлы библиотеки в свою систему (! ).

Вы можете узнать, какие библиотеки копировать, запустив lddв исходной системе.

Если это ваша собственная программа или вы скомпилировали ее самостоятельно, вы можете знать, каких библиотек не хватает.

После того, как вы идентифицировали свои библиотеки, вы можете скопировать их в личную папку, например. в ~/libs. Затем добавьте эту папку в путь к библиотеке :

.
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}":~/libs

если переменная уже существует (проверка по echo $LD_LIBRARY_PATH),или

export LD_LIBRARY_PATH=~/libs

если нет (обаbash-синтаксиса оболочки в стиле ).

Затем повторите попытку ldd.

Позже вы сможете запускать свою настоящую программу, всегда используя сценарий оболочки, который устанавливает переменную, а затем запускает вашу программу.

1
12.10.2021, 21:27
0 ответов

Теги

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