Как добавить путь включения по умолчанию для GCC в Linux?

288

Я бы хотел, чтобы gcc включал файлы $HOME/includeв дополнение к обычным каталогам include, но, похоже, аналога нет $LD_LIBRARY_PATH.

Я знаю, что я могу просто добавить каталог include в командной строке при компиляции (или в make-файле), но я бы очень хотел использовать здесь универсальный подход, как в случае с библиотекой.

Джесси Бедер
источник
3
Вот ссылка на руководство по GCC 4.8.1, где задокументированы переменные окружения C_INCLUDE_PATH и CPLUS_INCLUDE_PATH .
mloskot

Ответы:

392

Попробуйте установить C_INCLUDE_PATH(для заголовочных файлов C) или CPLUS_INCLUDE_PATH(для заголовочных файлов C ++).

Как упомянул Ciro, CPATHустановит путь для C и C ++ (и любого другого языка).

Более подробная информация в документации GCC .

jcrossley3
источник
53

Создайте псевдоним для GCC с вашими любимыми включениями.

alias mygcc='gcc -I /whatever/'
dirkgently
источник
12
Я думаю, что не должно быть места после-I
Юлий Курт
10
просто привычка опускать пробел, как если бы вы вводили -l<libnam>ссылку Просто заметьте, что создание псевдонима - очень плохое решение, на самом деле вы должны составить список ваших «избранных включений» и добавить их в свой make-файл.
h4unt3r
9
«Второй вариант с библиотекой в ​​качестве отдельного аргумента предназначен только для соответствия POSIX и не рекомендуется». в соответствии с руководством GCC.
Джори
Не хорошая идея. Это не может быть составлено (что, если вам нужен другой каталог? Что делать, если вам нужен какой-то другой переключатель GCC) и может привести к путанице в различных сценариях или автоматизированных инструментах, которые делают предположения о gcc.
einpoklum
8

Файл спецификации gcc может выполнить эту работу, однако это повлияет на всех пользователей машины.

Смотри здесь

dimba
источник
6

просто примечание: CPLUS_INCLUDE_PATHи C_INCLUDE_PATHне являются эквивалентом LD_LIBRARY_PATH. LD_LIBRARY_PATHобслуживает ld(динамический компоновщик во время выполнения), тогда как эквивалент первых двух, которые обслуживают ваш компилятор C / C ++ с расположением библиотек, - LIBRARY_PATH.

Дагим Сисай
источник