SORU
18 Ocak 2011, Salı


'in ne "kullanın stdafx.h" Visual Studio?

Bu stdafx.h VS2010 bir proje başlattığımda otomatik olarak oluşturulur. Çapraz platform C kütüphanesi yapmak istiyorum, bu başlık dosyası kullanabilir mi?/bilmiyorum.

Bu ne için? Ben sadece bu başlık dosyası Kaldır TAMAM mı?

CEVAP
18 Ocak 2011, Salı


Tüm C derleyicileri ile başa çıkmak için ciddi bir performans sorunu var. C kodu derleme uzun ve yavaş bir süreçtir.

Başlıkları C dosyalarının üstünde bulunan bir derlemeçokuzun, yavaş bir süreç. Windows APİ ve diğer API kütüphaneleri büyük bir kısmını oluşturan büyük başlık yapıları derleniyorçok,çokuzun, yavaş bir süreç. Bunu yapmak için, ve üzerinde, ve her Cpp kaynak dosya için bitmiştir bir ölüm Çanı.

Bu Windows ama eski bir sorun, Windows gibi büyük bir API karşı derlemek için Derleyiciler karşılaştığı benzersiz değil.

Microsoft derleyici basit bir hile olarak adlandırılan bu sorunu düzeltmekönceden derlenmiş bir üstbilgi. Sizi çok kurnazca: ancak her CPP dosyası olabilir potansiyel olarak ve yasal olarak vermek bir sligthly farklı anlam zincirinin başlık dosyaları dahil üstünde her Cpp dosyası (gibi şeyler olması farklı makrolar #define diye peşin içerir, ya da dahil olmak üzere başlıkları farklı sipariş), en sık değil. Çoğu zaman, onlarca ya da dahil, yüzlerce dosya var, ama hepsi tüm Cpp dosyaları uygulamanızda derlenmiş olduğu için aynı anlam için tasarlanmıştır.

Derleyici eğer her Cpp dosyası çizik anlamıyla içerir ise onlarca artı derlemek için her zaman başlamak zorunda değil mi büyük zaman tasarrufu yapabilirsiniz.

Özel bir başlık tüm derleme zincirinin başlangıç noktası olarak, dosya belirlenmesinden oluşur hilesi " önceden derlenmiş üstbilgi genellikle bir dosya adı verilir. 'dosya adı ^em>stdafx.hsadece tarihsel nedenlerle.

Sadece stdafx senin API için büyük büyük başlıklar listesi.h dosya, uygun bir sipariş, ve sonra başlatmak her birinin CPP dosyaları ve çok üst bir #include "stdafx.h" daha önce herhangi bir anlamlı içeriği (sadece tek şey izin önce yorum).

Bu koşullar altında, başlangıç yerinesıfırdanderleyici başlar stdafx.h Her şeyi toparlıyor kayıtlı sonuçlarından derleme.

Bu hile Microsoft Derleyiciler için benzersiz olduğunu sanmıyorum, ne de özgün bir gelişme olduğunu düşünüyorum.

Microsoft Derleyiciler için, önceden derlenmiş bir üstbilgi kullanımını denetleyen ayarı için derleyici komut satırı bağımsız değişkeni tarafından kontrol edilir: /Yu "stdafx.h". Tahmin edebileceğiniz gibi, stdafx.h dosya adı kullanımı basit bir kuralı budur; Eğer isterseniz adını değiştirebilirsiniz.

Visual Studio bu ayar Sağ tıklayarak CPP Projesi, seçme yoluyla GUI denetlenir 2010, 'Özellikler' ve gezinme "Yapılandırma Özellikleri, C/C \önceden Derlenmiş bir Üstbilgi".\ Visual Studio diğer sürümleri için, GUI yeri farklı olacak.

Not: Eğer devre dışı önceden derlenmiş üstbilgi (veya çalışan proje ile bir araç değil destek onları), o yapmaz programınızı yasadışı; bu sadece anlamına gelir bu aracı derlenir her şeyi sıfırdan her zaman.

Eğer Windows bağımlılıkları ile bir kütüphane oluşturuyorsanız, kolayca açýklama veya kaldırabilirsiniz #stdafx içerir.h dosyası. Dosya başına kaldırmak için gerek yok, ama açıkça bu yüzden de, yukarıdaki derleme başlık ayarı devre dışı bırakarak yapabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • Michael Zhang

    Michael Zhan

    8 EYLÜL 2012
  • NYLON Video

    NYLON Video

    11 Aralık 2006