10

Belgeyi MSDN'de okudum, ancak sonuçta bunlar arasındaki pratik farkın tam olarak ne olduğu konusunda net bir fikre sahip olmadım. Her ikisi de her * .cpp dosyasının üstüne eklenecek stdafx.h gerektiriyor.Visual Studio'da "Precompiled Header Oluştur" (/ Yc) ve "Precompiled Header Kullan" (/ Yu) arasındaki fark nedir?

VS2008 kullanıyorum.

Bir şeyleri düzeltmeye yardımcı olan var mı?

+0

belgelerine bir bağlantı alakalı olabilir 'Yarat' değerini ayarlayın. Önemsiz saçma cevap şöyle olurdu: * Önceden yazılmış bir üstbilgi oluşturmak ** için kullanılır, diğeri ** kullanımı ** it * (yani derleyicinin normal üstbilgileri okuması ve ön derlenmiş üstbilgiyi oluşturması için kullanılır. derleyici için önceden derlenmiş üstbilgiyi üretmemek, daha çok kullanabilmek için –

cevap

11

Öncelikle, önceden derlenmiş başlıkların amacını anlamanız gerektiğini düşünüyorum. Büyük projelerde, tek bir istemci uzantısının gerektirdiği tüm üstbilgilerin işlenmesi zaman alabilir, bu nedenle bazı insanlar .pch dosyalarını kütüphaneleriyle birlikte dağıtmayı tercih ederler. .pch dosyalarını oluşturmak için /Yc derleyici bayrağını kullanın ve kitaplığınızı tüketmek isteyen kişi /Yu bayrağını ayarlayacaktır. Detaylar için bkz. here ve here.

Visual Studio PCH dosyaları nasıl kullanılacağına dair
+0

PCH dosyalarını bir kütüphaneden almamalısınız.Bir şey için, çoğu kod birden çok kütüphane kullanır, ancak derleyici sadece bir PCH okuyabilir. Kütüphane geliştirme sırasında kullanılan başlıklar muhtemelen tüketici kodunun ihtiyaç duyduğu modellerden oldukça farklıdır. –

+0

@BenVoigt Gerçekten de bu yaygın bir uygulama değildir. Bunu kod tabanı olan sıkı bir şekilde kapatılmış bir bankacılık ortamında gördüm büyük ve müşteri uzantıları kesinlikle bu şirket tarafından teslim alınan şeyler türetilmiştir.Bu cevap ihtiyacı olduğunu düşünüyorsanız, bir düzenleme önermek için çekinmeyin lütfen. –

21

kısa özeti:

  • projede tüm cpp dosyaları stdafx.h eklemek zorunda
  • seç proje içinde (eğer isterseniz başka bir şey olarak değiştirebilirsiniz) Çözüm Gezgini'nde ve Properties -> C++ -> Precompiled Headers'da 'Önbelleğe alınmış üstbilgileri oluştur/kullan' seçeneğini 'Kullan' olarak ayarlayın. Özellik sayfaları hala çözüm explorer stdafx.cpp seçme gösterilirken
  • uygula Hit ve
+2

+1 Net, basit ve noktaya Cevap. – CodeAngry