Linux'ta GCC için varsayılan bir ekleme yolu nasıl eklenir?


288

Ben gcc $HOME/includeher zamanki gibi dizinleri ek olarak dosyaları dahil etmek istiyorum , ama bir analog gibi görünmüyor $LD_LIBRARY_PATH.

Ben sadece derlerken (veya makefile) komut satırında dahil dizin ekleyebilirsiniz biliyorum, ama gerçekten kütüphane durumda olduğu gibi, burada evrensel bir yaklaşım istiyorum.


3
Burada C_INCLUDE_PATH ve CPLUS_INCLUDE_PATH ortam değişkenlerinin belgelendiği GCC 4.8.1 kılavuzuna bağlantı verilmektedir .
mloskot

Yanıtlar:


392

C_INCLUDE_PATH(C başlık dosyaları için) veya CPLUS_INCLUDE_PATH(C ++ başlık dosyaları için ) ayarını deneyin .

Ciro'nun belirttiği gibi, CPATHhem C hem de C ++ (ve diğer diller) için yolu ayarlayacaktır.

Daha fazla ayrıntı GCC'nin belgelerinde .


53

En sevdiğiniz içerikleri içeren gcc için bir takma ad oluşturun.

alias mygcc='gcc -I /whatever/'

12
Sanırım sonra boşluk olmamalı-I
Iulius Curt

10
sadece -l<libnam>bağlantıyı yazmak istediğiniz gibi, alanı atlamak için bir alışkanlık meselesi Sadece bir takma ad oluşturmanın çok kötü bir çözüm olduğunu unutmayın, gerçekten 'en sevdiğiniz içeriklerin' bir listesini oluşturacak ve bunları profilinize ekleyebilirsiniz.
h4unt3r

9
"Kütüphanenin ayrı bir argüman olarak ikinci alternatifi sadece POSIX uyumluluğu içindir ve önerilmez." , GCC kılavuzuna göre.
Jori

İyi bir fikir değil. Bu kompoze edilemez (ya başka bir dir istiyorsanız? Ya başka bir GCC anahtarı istiyorsanız) ve gcc hakkında varsayımlar yapan çeşitli komut dosyaları veya otomatik araçları karıştırabilir.
einpoklum

8

Bir gcc spec dosyası işi yapabilir, ancak makinedeki tüm kullanıcılar etkilenecektir.

Buraya bakın


6

sadece bir not: CPLUS_INCLUDE_PATHve C_INCLUDE_PATHeşdeğeri değildir LD_LIBRARY_PATH. LD_LIBRARY_PATHhizmet veren ldkütüphanelerin konumu ile C / C ++ derleyici hizmet veren önceki iki eşdeğer ise (zamanında dinamik bağlayıcı) LIBRARY_PATH.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.