Jak dodać domyślną ścieżkę dołączania dla GCC w systemie Linux?

288

Chciałbym, aby gcc zawierał pliki $HOME/includeoprócz zwykłych katalogów dołączania, ale wydaje się, że nie ma analogii do $LD_LIBRARY_PATH.

Wiem, że mogę po prostu dodać katalog włączania w wierszu poleceń podczas kompilacji (lub w pliku makefile), ale naprawdę chciałbym tutaj podejście uniwersalne, tak jak w przypadku biblioteki.

Jesse Beder
źródło
3
Oto link do instrukcji GCC 4.8.1, w której dokumentowane są zmienne środowiskowe C_INCLUDE_PATH i CPLUS_INCLUDE_PATH .
mloskot

Odpowiedzi:

392

Spróbuj ustawić C_INCLUDE_PATH(dla plików nagłówka C) lub CPLUS_INCLUDE_PATH(dla plików nagłówka C ++).

Jak wspomniano Ciro, CPATHustawi ścieżkę dla C i C ++ (i każdego innego języka).

Więcej szczegółów w dokumentacji GCC .

jcrossley3
źródło
53

Utwórz alias dla gcc ze swoimi ulubionymi dołączeniami.

alias mygcc='gcc -I /whatever/'
bezpośrednio
źródło
12
Myślę, że po tym nie powinno być miejsca-I
Iulius Curt
10
to tylko kwestia przyzwyczajenia do omijania miejsca, tak jak -l<libnam>piszesz, aby utworzyć link. Pamiętaj, że utworzenie aliasu jest bardzo kiepskim rozwiązaniem, naprawdę zbudowałbyś listę swoich „ulubionych dołączeń” i dodałeś je do swojego makefile.
h4unt3r
9
„Druga alternatywa z biblioteką jako oddzielnym argumentem dotyczy tylko zgodności z POSIX i nie jest zalecana.” , zgodnie z instrukcją GCC.
Jori,
To nie jest dobry pomysł. Nie można tego skomponować (co jeśli chcesz innego katalogu? A jeśli chcesz innego przełącznika GCC) i może mylić różne skrypty lub automatyczne narzędzia, które przyjmują założenia dotyczące gcc.
einpoklum
8

Plik specyfikacji gcc może wykonać to zadanie, jednak wpłynie to na wszystkich użytkowników komputera.

Zobacz tutaj

dimba
źródło
6

tylko uwaga: CPLUS_INCLUDE_PATHi C_INCLUDE_PATHnie są odpowiednikiem LD_LIBRARY_PATH. LD_LIBRARY_PATHsłuży ld(dynamiczny linker w czasie wykonywania), podczas gdy odpowiednikiem dwóch poprzednich, który obsługuje kompilator C / C ++ z lokalizacją bibliotek, jest LIBRARY_PATH.

Dagim Sisay
źródło