"Dizinleri Dahil Et" ve "Ek Dahil Et Dizinleri" arasındaki fark nedir


95

Projemin konfigürasyon özelliklerinde, "VC ++ dizinleri" altında "Dizinleri Dahil Et" için bir girdi var. Ancak "C / C ++" seçeneğinin altında "Ek Dizinleri Dahil Et" adlı başka bir girdi var. Aynı şey kütüphane dizinlerinde de olur.

Bu iki giriş arasındaki fark nedir?

görüntü açıklamasını buraya girin görüntü açıklamasını buraya girin

Yanıtlar:


48

Bu, VS2010'da ortaya çıkan garipliktir. VC ++ Dizinleri ayarları, Araçlar + Seçenekler, Projeler ve Çözümler, VC ++ Dizinlerinde bulunurdu. Makinede oluşturulan her projeye uygulanan genel ayarlar. Hala orada ancak bunu proje ayarlarınızda değiştirmeniz gerektiğine işaret ediyor. VS2010'daki derleme motoru revizyonunun bir yan etkisi, msbuild ile derlemeye olanak sağlar. Proje başına ayarların kaldırılması mantıklı olurdu, ancak bu çok fazla mevcut projeyi bozacaktır.

Bu nedenle, VC ++ Dizin ayarlarını makine varsayılanı olarak kullanmak muhtemelen en iyisidir. VS yükleyici tarafından otomatik olarak önceden ayarlanır. Sadece alışılmadık bir dizin arama sırasına ihtiyacınız varsa, özel konumları en son koyarak değiştirin. Bunu yapmak çok sıra dışı.

Ancak işe yarıyor. Ve sonunda bundan yararlanıldı. VS2012 ve sonraki sürümlerde Platform Araç Seti ayarını güçlendirmek. Farklı derleyici, farklı bağlayıcı, farklı #include dizinler, farklı bağlayıcı arama yolu. Tek bir ayarla değiştirildi, güzel.


3
Hmmm ... ise gloabl seçenekler bu altında kaydedilir doğrudur - ama bu özellik sayfası olduğunu Microsoft.Cpp.Win32.userve sadece bu. Proje etkinken veya başka bir özellik sayfası varken "VC ++ Dizinleri" girişini düzenlerseniz, değişiklik .vcxprojdosyada veya ilgili .propsdosyada kalıcı olacak ve genel veya kullanıcı çapında olmayacaktır.
Martin Ba

25

Dizinler Dahil ortam değişkeni karşılık gelir INCLUDE.

Pencerede görüntülenen dizin ayarları, Visual Studio'nun kaynak kodu dosyalarınızda başvurulan dosyaları içermek için arayacağı dizinlerdir. INCLUDE ortam değişkenine karşılık gelir.

İken ek Dizinler Dahil (yani bir komut satırı argümanı yoluyla iletilir \Iseçeneği).


20

YAPILANDIRMA YOLLARI DAHİLDİR

VC ++ Dizinleri: Dizinleri Dahil Et

  • bu değer, Visual Studio dışında tanımlanan INCLUDE Windows ortam değişkeninden miras alınır
    • ortam değişkenleri şunlar olabilir: bilgisayara genel veya kullanıcı düzeyinde kapsama sahip
    • INCLUDEVe LIBne zaman ortam değişkenleri oluşturulur , Microsoft Windows SDK ile birlikte yüklenir Visual Studio .

C / C ++: Ek Dizinleri Dahil Etme

  • proje düzeyinde bir ayardır ... çözümünüzdeki her proje için bu değeri tanımlamanız gerekecektir
  • bu değer kaynak kontrolüne devam ettirilebilir

EK NOTLAR

Hangisini kullanmalıyım?

Dizinleri Dahil Et veya Ek Dahil Etme Dizinlerini kullanma kararı , kuruluşunuzun geliştirme sürecine bağlı olacaktır. Bence daha önemli:

  • geliştirme ortamını tutarlı ve güvenilir bir şekilde yeniden oluşturabildiğinizi (düşünün: kaynak kodunu başka bir geliştiriciye devretmek)
  • Bir organizasyon içindeki geliştiriciler için tutarlı bir yaklaşım kullanın

Makrolar Hakkında Bir Not

  • C ++ proje yapılandırma makroları (C ++ ön işlemci #defineyönergesi ile karıştırılmamalıdır ) farklı kaynaklardan içerik devralır. Makrolar ...
    • $(Include)değerlerini Windows ortam değişkenlerinden devralır
    • $(OutDir)değerlerini Visual Studio IDE'den devralır

REFERANSLAR

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.