Spec-Zone.ru › GCC 5

3.19 Переменные среды, влияющие на GCC

В этом разделе описаны несколько переменных среды, которые влияют на работу GCC. Некоторые из них задают каталоги или префиксы для поиска различных типов файлов. Другие используются для задания других аспектов среды компиляции.

Обратите внимание, что вы также можете указать места поиска с помощью таких опций, как -B, -I и -L (см. Параметры каталогов). Они имеют приоритет над местами, указанными с помощью переменных среды, которые, в свою очередь, имеют приоритет над заданными в конфигурации GCC. Смотрите Управление драйвером компиляции gcc в GNU Compiler Collection (GCC) Internals.

LANG
LC_CTYPE
LC_MESSAGES
LC_ALL

Эти переменные среды контролируют способ использования GCC информации о локализации, что позволяет GCC работать с разными национальными соглашениями. GCC проверяет категории локали LC_CTYPE и LC_MESSAGES, если это было настроено. Эти категории локали могут быть установлены в любое значение, поддерживаемое вашей установкой. Типичное значение — ‘en_GB.UTF-8’ для английского языка в Соединённом Королевстве, закодированного в UTF-8.

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

Переменная среды LC_MESSAGES задаёт язык, используемый в диагностических сообщениях.

Если переменная среды LC_ALL установлена, она переопределяет значения LC_CTYPE и LC_MESSAGES; в противном случае, LC_CTYPE и LC_MESSAGES по умолчанию принимают значение переменной LANG. Если ни одна из этих переменных не установлена, GCC по умолчанию использует традиционное поведение C на английском языке.

TMPDIR

Если TMPDIR установлена, она задаёт каталог для использования временных файлов. GCC использует временные файлы для хранения результатов одной стадии компиляции, которые должны использоваться в качестве входных данных для следующей стадии: например, результаты работы препроцессора, которые являются входными данными для собственно компилятора.

GCC_COMPARE_DEBUG

Установка GCC_COMPARE_DEBUG почти эквивалентна передаче -fcompare-debug драйверу компилятора. Для получения более подробной информации см. документацию по этой опции.

GCC_EXEC_PREFIX

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

Если GCC_EXEC_PREFIX не установлена, GCC пытается определить подходящий префикс, исходя из пути, с которым она вызывается.

Если GCC не может найти подпрограмму с указанным префиксом, она пытается найти её в обычных местах для этой подпрограммы.

Значение по умолчанию для GCC_EXEC_PREFIX — prefix/lib/gcc/, где prefix — префикс установленного компилятора. Во многих случаях prefix — это значение prefix, когда вы запускали скрипт configure.

Другие префиксы, указанные с -B, имеют приоритет над этим префиксом.

Этот префикс также используется для поиска файлов, таких как crt0.o, используемых для линковки.

Кроме того, префикс используется нестандартным образом для поиска каталогов для поиска заголовочных файлов. Для каждого из стандартных каталогов, имя которых обычно начинается с ‘/usr/local/lib/gcc’ (точнее, со значением GCC_INCLUDE_DIR), GCC пытается заменить это начало указанным префиксом, чтобы получить альтернативное имя каталога. Таким образом, при -Bfoo/ GCC ищет foo/bar перед стандартным каталогом /usr/local/lib/bar. Если стандартный каталог начинается с настроенного prefix, то значение prefix заменяется на GCC_EXEC_PREFIX при поиске заголовочных файлов.

COMPILER_PATH

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

LIBRARY_PATH

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

LANG

Эта переменная используется для передачи информации о локали в компилятор. Один из способов использования этой информации — определение кодировки символов, которая будет использоваться при анализе символьных литералов, строковых литералов и комментариев в C и C++. Когда компилятор настроен на поддержку многобайтовых символов, следующие значения для LANG распознаются:

‘C-JIS’

Распознавание символов JIS.

‘C-SJIS’

Распознавание символов SJIS.

‘C-EUCJP’

Распознавание символов EUCJP.

Если LANG не определена или имеет другое значение, компилятор использует mblen и mbtowc по умолчанию для локали, чтобы распознать и преобразовать многобайтовые символы.

Некоторые дополнительные переменные среды влияют на поведение препроцессора.

CPATH
C_INCLUDE_PATH
CPLUS_INCLUDE_PATH
OBJC_INCLUDE_PATH

Значение каждой переменной — список каталогов, разделённых специальным символом, подобно PATH, в котором следует искать заголовочные файлы. Специальный символ PATH_SEPARATOR зависит от целевой системы и определяется при сборке GCC. Для целевых систем на базе Microsoft Windows он является точкой с запятой, а для почти всех других систем — двоеточием.

CPATH задаёт список каталогов, которые будут проверяться так, как если бы они были указаны с -I, но после любых путей, заданных с -I в командной строке. Эта переменная среды используется независимо от языка, который препроцессируется.

Остальные переменные среды применяются только при препроцессировании указанного языка. Каждая из них задаёт список каталогов для проверки, как если бы они были указаны с -isystem, но после любых путей, заданных с -isystem в командной строке.

Во всех этих переменных пустой элемент указывает компилятору проверить текущий рабочий каталог. Пустые элементы могут находиться в начале или конце пути. Например, если значение CPATH равно :/special/include, это имеет тот же эффект, что и ‘-I. -I/special/include’.

DEPENDENCIES_OUTPUT

Если эта переменная установлена, её значение задаёт способ вывода зависимостей для Make на основе файлов заголовков, не являющихся системными, обработанных компилятором. Системные заголовочные файлы игнорируются в выводе зависимостей.

Значение DEPENDENCIES_OUTPUT может быть просто именем файла, в этом случае правила Make записываются в этот файл, угадывая имя цели по имени файла исходного кода. Или значение может иметь вид ‘file target’, в этом случае правила записываются в файл file с использованием target в качестве имени цели.

Другими словами, эта переменная среды эквивалентна объединению опций -MM и -MF (см. Параметры препроцессора), а также с необязательной опцией -MT.

SUNPRO_DEPENDENCIES

Эта переменная такая же, как DEPENDENCIES_OUTPUT (см. выше), за исключением того, что системные заголовочные файлы не игнорируются, поэтому она подразумевает -M, а не -MM. Однако зависимость от основного входного файла опущена. См. Параметры препроцессора.

Далее: Предкомпилированные заголовки, Предыдущее: Параметры генерации кода, Вверх: Вызов GCC [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Environment-Variables.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API