Spec-Zone.ru › GCC 4

3.19 Переменные окружения, влияющие на GCC

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

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

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. Однако, зависимость от основного входного файла опущена. См. Опции предварительной обработки.

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

Spec-Zone.ru

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