Spec-Zone.ru › GCC 6

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

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

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

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

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

Spec-Zone.ru

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