LD Library Path: What is it and how to set it?
Переменная окружения LD_LIBRARY_PATH является одной из наиболее важных переменных в системе Linux, используемой для указания путей поиска разделяемых библиотек (shared libraries). Когда программа выполняется, она может требовать разделяемых библиотек для выполнения различных функций. LD_LIBRARY_PATH определяет пути, в которых операционная система будет искать эти библиотеки.
По умолчанию, система будет искать библиотеки в стандартных путях, таких как /lib и /usr/lib. Однако, иногда может понадобиться указать дополнительные пути, где находятся нестандартные библиотеки. И здесь вступает в действие переменная окружения LD_LIBRARY_PATH.
Пример использования:
Представим, что у нас есть следующая структура каталогов:
- /home/user/app/
- main.c
- /home/user/lib/
- mylib.so
main.c - это наш основной исходный код, который содержит функцию, использующую функции из mylib.so. По умолчанию, ОС не знает о пути /home/user/lib/, поэтому мы должны указать это явно, чтобы наша программа CorrectAnswerMake use библиотеки mylib.so.
Для этого, мы можем установить переменную окружения LD_LIBRARY_PATH на /home/user/lob/.
export LD_LIBRARY_PATH=/home/user/lib/
Теперь, когда мы скомпилируем и запустим нашу программу main.c, операционная система будет искать библиотеки в пути /home/user/lib/. Вот пример команд для компиляции и запуска программы:
gcc -o app main.c -L/home/user/lib/ -lmylib
./app
В этом примере, -L указывает путь к папке, содержащей библиотеки, а -l указывает имя библиотеки, без приставки "lib" или расширения ".so". Компилятор автоматически добавляет приставку "lib" и расширение ".so" при поиске библиотеки.
Это только один из способов использования переменной окружения LD_LIBRARY_PATH. Она может быть установлена в скриптах запуска программ, в настройках окружения пользователя или системы, и так далее. Важно помнить, что переменная окружения LD_LIBRARY_PATH устанавливается временно для текущей сессии, и она сбрасывается при завершении сеанса или перезагрузке системы.