Вопрос: Что делает эта командная строка?


export LIBRARY_PATH=.

4
2017-09-06 12:24


Источник


-1 Вы имеете в виду, что делает эта команда. Не то, что делает эта команда. Я почти подумал, что вопрос: «Что делает командная строка» !! - barlop


Ответы:


В Bourne-подобных оболочках он задает переменную ${LIBRARY_PATH} быть текущим рабочим каталогом (во время ссылки на него) и экспортировать его для просмотра другими командами.

Если вам нужен текущий каталог во время export, вы должны использовать:

export LIBRARY_PATH=$(pwd)

Обратите внимание, что эта команда игнорирует любое содержимое, которое, возможно, уже было присвоено ${LIBRARY_PATH}, Если вы хотите добавить ${LIBRARY_PATH} вы можете использовать:

export LIBRARY_PATH=${LIBRARY_PATH}:.

Компилятор GCC - это одна такая команда, которая будет потреблять ${LIBRARY_PATH}:

Значение LIBRARY_PATH представляет собой список каталогов, разделенных двоеточиями, подобно PATH. когда   настроенный как собственный компилятор, GCC пытается указать указанные каталоги, когда   поиск специальных файлов компоновщика, если они не могут найти их с помощью GCC_EXEC_PREFIX.

Видеть man gcc а также man export Чтобы получить больше информации.


7
2017-09-06 12:30





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


1
2017-09-06 12:27



Он устанавливает переменную окружения на символ полной остановки. В конкретном случае, когда LIBRARY_PATH используется компиляторами, это означает текущий каталог во время компиляции.


export LIBRARY_PATH=.

эта команда сообщает компоновщику выполнить поиск библиотеки из текущего каталога.


1
2017-09-06 12:27



В этой командной строке или исходном вопросе не упоминается компоновщик. Вопрос кажется гораздо более простым. - Johnsyweb


Это устанавливает переменную среды LIBRARY_PATH. Значение - это имя текущего указателя. Экспорт указывает bash, что переменная будет не только в оболочке, а передана командам, запущенным здесь.


1
2017-09-06 12:28



Нет, значение представляет собой строку «.». Эта представляет текущий каталог, используемый в качестве пути к файловой системе, но оболочка не заменяет имя текущего каталога.


Вы устанавливаете переменную env LIBRARY_PATH к текущему рабочему каталогу и экспортировать его так, чтобы он был доступен для программ вне оболочки, компилятора в вашем случае.

Эти каталоги, указанные в LIBRARY_PATH будет выполняться поиск по любым каталогам, указанным в командной строке, с опцией -L, и перед стандартными каталогами по умолчанию (например, /usr/local/lib а также /usr/lib).


1
2017-09-06 12:30



Как я уже сказал на других ответах, он устанавливает LIBRARY_PATH значение, которое означает «текущий каталог», когда компилятор его использует. Он не устанавливает его в cwd во время выполнения команды экспорта.