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

575
export LIBRARY_PATH=. 
4
-1 Вы имеете в виду, что делает эта команда. Не то, что делает эта командная строка. Я почти подумал, что вопрос "Что делает командная строка" !! barlop 13 лет назад 0

5 ответов на вопрос

7
Johnsyweb

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

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

export LIBRARY_PATH=$(pwd) 

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

export LIBRARY_PATH=$:. 

Линкер GCC - одна из таких команд, которая будет использовать $:

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

Смотрите man gccи man exportдля получения дополнительной информации.

1
Preet Sangha

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

Он устанавливает переменную окружения в качестве символа полной остановки. В конкретном случае использования компиляторами LIBRARY_PATH это * означает * текущий каталог во время компиляции. 14 лет назад 2
1
Pavitar
export LIBRARY_PATH=. 

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

Никакой компоновщик не упоминается в этой командной строке или исходном вопросе. Вопрос кажется гораздо более простым, чем этот. Johnsyweb 14 лет назад 0
1
harper

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

Нет, значением является строка "." Это * представляет * текущий каталог при использовании в качестве пути к файловой системе, но оболочка не заменяет * имя * текущего каталога в нем. 14 лет назад 1
1
user22644

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

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

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

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