Bagaimana cara menambahkan jalur sertakan default untuk GCC di Linux?


288

Saya ingin gcc untuk memasukkan file dari $HOME/includeselain direktori include biasa, tetapi sepertinya tidak ada analog dengan $LD_LIBRARY_PATH.

Saya tahu saya bisa menambahkan direktori include di command line ketika mengkompilasi (atau di makefile), tapi saya sangat suka pendekatan universal di sini, seperti dalam kasus perpustakaan.


3
Berikut ini tautan ke manual GCC 4.8.1 tempat C_INCLUDE_PATH dan CPLUS_INCLUDE_PATH variabel lingkungan didokumentasikan.
mloskot

Jawaban:


392

Coba atur C_INCLUDE_PATH(untuk file header C) atau CPLUS_INCLUDE_PATH(untuk file header C ++).

Seperti yang disebutkan Ciro, CPATHakan menetapkan path untuk C dan C ++ (dan bahasa lainnya).

Lebih detail dalam dokumentasi GCC .


53

Buat alias untuk gcc dengan menyertakan favorit Anda.

alias mygcc='gcc -I /whatever/'

12
Saya pikir seharusnya tidak ada ruang setelah-I
Iulius Curt

10
hanya masalah kebiasaan untuk menghilangkan ruang, sama seperti Anda akan mengetik -l<libnam>untuk menghubungkan. Hanya perhatikan bahwa membuat alias adalah solusi yang sangat buruk, benar-benar Anda akan membangun daftar 'termasuk favorit' Anda dan menambahkannya di makefile Anda.
h4unt3r

9
"Alternatif kedua dengan perpustakaan sebagai argumen terpisah hanya untuk kepatuhan POSIX dan tidak direkomendasikan." , menurut manual GCC.
Jori

Bukan ide yang bagus. Ini tidak dapat digabungkan (bagaimana jika Anda ingin dir lain? Bagaimana jika Anda ingin beberapa saklar GCC lainnya) dan dapat membingungkan berbagai skrip atau alat otomatis yang membuat asumsi tentang gcc.
einpoklum

8

File spec gcc dapat melakukan pekerjaan itu, namun semua pengguna pada mesin akan terpengaruh.

Lihat di sini


6

hanya sebuah catatan: CPLUS_INCLUDE_PATHdan C_INCLUDE_PATHtidak setara dengan LD_LIBRARY_PATH. LD_LIBRARY_PATHmenyajikan ld(penghubung dinamis saat runtime) sedangkan padanan dari dua sebelumnya yang melayani kompiler C / C ++ Anda dengan lokasi perpustakaan adalah LIBRARY_PATH.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.