Что является переменной среды для GCC/G ++ для поиска.h файлов во время компиляции: LIBRARY_PATH, C_PATH, C_INCLUDE_PATH или CPLUS_PATH?

Существует ли переменная среды для GCC/G ++ для поиска.h файлов во время компиляции?

Я гуглю свой вопрос, существуют люди, говорят, что LIBRARY_PATH, C_PATH, C_INCLUDE_PATH, CPLUS_PATH, поэтому какой - он?

18
задан Ciro Santilli 新疆改造中心法轮功六四事件 2 November 2015 в 09:38
поделиться

2 ответа

От: http://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html

 CPATH 
C_INCLUDE_PATH {{1 }} CPLUS_INCLUDE_PATH 
OBJC_INCLUDE_PATH 
 

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

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

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

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

Я думаю, что большинство настроек избегают использования переменных среды и вместо этого передают подключаемые каталоги в командной строке с помощью параметра -I . обычно есть переменная make-файла или настройка IDE для управления тем, что передается в -I .

28
ответ дан 30 November 2019 в 07:18
поделиться

Просто посмотрите актуальную документацию gcc . Там все объяснено.

Подводя итог:

  • LIBRARY_PATH предназначен для компоновщика, а не для файлов заголовков (используется при поиске библиотек, запрошенных параметром -l ).
  • CPATH указывает каталоги для поиска файлов заголовков в (как опция -I )
  • C_INCLUDE_PATH и CPLUS_INCLUDE_PATH похожи на CPATH, но для C / C ++ соответственно.
8
ответ дан 30 November 2019 в 07:18
поделиться
Другие вопросы по тегам:

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