Yanıtlar:
Mimariler, inşa etmek istediğiniz mimarilerdir, geçerli mimariler, kod tabanınızla inşa etmeyi düşündüğünüz mimarilerdir.
Yani belki sadece armv7s için ikilinizi oluşturmak istiyorsunuz, ancak aynı kaynak kodu armv7 ve armv6 için iyi derleyecektir. Öyleyse VALID_ARCHS = armv6 armv7 armv7s
, ayarladınız ARCHS = armv7s
çünkü aslında kodunuzla oluşturmak istediğiniz tek şey bu .
Veya Apple-ese'de:
ARCHS (Mimariler)
Boşluklarla ayrılmış tanımlayıcı listesi. İkilinin hedeflendiği mimarileri (ABI'ler, işlemci modelleri) belirtir. Bu yapı ayarı birden fazla mimariyi belirttiğinde, oluşturulan ikili, belirtilen mimarilerin her biri için nesne kodu içerebilir.
ve:
VALID_ARCHS (Geçerli Mimariler)
Boşluklarla ayrılmış tanımlayıcı listesi. İkilinin oluşturulabileceği mimarileri belirtir. Derleme sırasında bu liste ARCHS derleme ayarının değeriyle kesişir; ortaya çıkan liste, ikilinin üzerinde çalışabileceği mimarileri belirtir. Ortaya çıkan mimari listesi boşsa, hedef ikili oluşturmaz.
Kaynak: Xcode Derleme Ayar Referansı
Pratikte, VALID_ARCHS
yalnız kalırsınız ve onu değiştirmek konusunda endişelenmezsiniz ve sadece ARCHS
inşa etmek istediğiniz mimarileri ayarlamak için oynarsınız. Tipik olarak, bir Hata Ayıklama derlemesini sadece olarak ayarlarsınız NATIVE_ARCH
, çünkü yalnızca test edeceğiniz / üzerinde çalıştıracağınız makine için hata ayıklama sürümünü oluşturmak istediğinizden ve desteklemeyi planladığınız mimarilerin tüm yelpazesi için Sürüm yapıları oluşturur.
Apple belgesinden, ikili Xcode'un oluşturacağı listenin Valid Architectures
kesişen liste olduğunu biliyoruz Architectures
.
Bu yüzden, dediği gibi Jeremy'nin cevabının doğru olduğunu sanmıyorum:
Yani belki sadece armv7s için ikilinizi oluşturmak istiyorsunuz, ancak aynı kaynak kodu
armv7 ve armv6 için iyi derleyecektir. ÖyleyseVALID_ARCHS = armv6 armv7 armv7s
, ARCHS = armv7s ayarladınız çünkü aslında kodunuzla oluşturmak istediğiniz tek şey bu.
Ayarladığınızda VALID_ARCHS = armv6 armv7 armv7s
ve ayarladığınızda ARCHS = armv7s
, ikili Xcode'un oluşturacağı sonuç armv7s olur - armv6 / armv7 ile uyumlu olamaz.
Ve armv6 / armv7 / armv7s ile uyumlu olmak istiyorsanız , ayarlamalısınız VALID_ARCHS = armv6 armv7 armv7s
ve ARCHS = armv6
bu şekilde, ikili Xcode oluşturacak sonucu armv6 olur ve arm işlemcisi geriye dönük olarak uyumlu olduğu için hem armv6 / armv7 / armv7s üzerinde sorunsuz çalışabilir. .