Xcode'da Prefix.pch dosyası nedir?


Yanıtlar:


117

Önceden derlenmiş başlık.

Bu ne?

A Prefix.pch, önceden derlenmiş bir başlıktır. Derlemeyi daha hızlı hale getirmek için önceden derlenmiş başlıklar icat edildi . Aynı başlık dosyalarını defalarca ayrıştırmak yerine, bu dosyalar önceden bir kez ayrıştırılır.

Xcode

Xcode'da, istediğiniz başlık dosyalarının içe aktarımlarını bir "önek başlığına" eklersiniz ve Precompile Prefix Headerönceden derlenmelerini sağlarsınız. Ancak bir önek başlığının ardındaki fikir, ön derlemeden farklıdır.

Her kaynak dosyanın başlangıcına örtük olarak bir önek başlığı eklenir. Her kaynak dosyanın eklediği gibi

#import "Prefix.pch"

her şeyden önce dosyanın en üstünde.

Çıkarma.

Önceden derlenmiş başlığı kaldırabilirsiniz. Bu soru zaten aşağıda bağladığım başlıkta cevaplandı. İhtiyacınız olan tüm bilgileri ve faydalı yorumları içerir.

Prefix.pch dosyasını Xcode projesinden kaldırmak uygun mudur?


25

Prefix.pch dosyası nedir?

Bir .pch, Önceden Derlenmiş bir Başlıktır.

C ve C ++ programlama dillerinde, başlık dosyası, metni C ön işlemcisi tarafından başka bir kaynak dosyaya otomatik olarak dahil edilebilen bir dosyadır ve genellikle kaynak dosyadaki derleyici yönergelerinin kullanılmasıyla belirtilir.

Önek başlıkları derlenir ve bir önbellekte saklanır ve ardından derleme sırasında her dosyaya otomatik olarak eklenir. Bu, derlemeyi hızlandırabilir ve onu kullanan her dosyaya bir import ifadesi eklemeden bir dosya eklemenize izin verir. Bunlar gerekli değildir ve aslında onları değiştirdiğinizde derlemeyi yavaşlatır.

Evet, projeyi .pch dosyası olmadan derleyip çalıştırabilirsiniz.

Xcode'da, hedefinizin derleme ayarlarına gidin (Komut-Seçenek-E, yapı sekmesi) ve Ön Derleme Önek Başlığı'nın (GCC_PRECOMPILE_PREFIX_HEADER) işaretini kaldırın. Dilerseniz Önek Üstbilgi ayarının değerini de kaldırabilirsiniz.

Ayrıca şunu unutmayın:

Makroları bir.pch dosyasına koymayın! Bir .pch dosyası, tanımı gereği, projeye özgü önceden derlenmiş bir başlıktır. Gerçekten proje bağlamının ötesinde kullanılmamalıdır ve gerçekten de #includes ve #imports dışında hiçbir şey içermemelidir.

Bazı makrolarınız varsa ve başlıklar arasında paylaşmak istiyorsanız, bunları kendilerine ait bir başlık dosyasına yapıştırın - Common.h veya her neyse - ve bunu .pch başlangıcına ekleyin.


Lütfen bu eski görevin olumsuz oylanmasının nedenini belirtmek için bir yorum eklemeyi düşünün.
Hemang

7

Önek başlıkları derlenir ve bir önbellekte saklanır ve ardından derleme sırasında her dosyaya otomatik olarak eklenir. Bu, derlemeyi hızlandırabilir ve onu kullanan her dosyaya bir import ifadesi eklemeden bir dosya eklemenize izin verir. Bunlar gerekli değildir ve aslında onları değiştirdiğinizde derlemeyi yavaşlatır.

Genellikle .pchdosya adlandırma oluşumuyourProjectName-Prefix.pch


1

Tarih:

#include => #import => .pch

#include vs # ithalat

Önceden Derlenmiş Başlıklar - prefix.pch

#includevs @importbir dezavantaja sahiptir - yavaş derleme süresi çünkü bir derleyici, çok sayıda .hdosyanın içe aktarıldığı kadar çok ayrıştırması ve derlemesi gerekir .

Precompiled header file - .pch- ortak başlıkları toplar. Bu dosya önceden derlendiğinde kaynak dosyalarda kullanılabilir ve bu da derleme süresini hızlandırır.

Örneğe bir göz atalım Prefix.pch:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif

.pchDosya eklemek için şuraya gidin Build Settings:

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

Geliştirici, .pchdesteklemek için ek maliyetler getiren dosyayı yönetmelidir .

Sonraki adım @import[Hakkında]

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.