2013-04-28 12 views
5

Aslan'a yükseltme yapamayan eski bir bilgisayarım var, ancak kod yazmak için instancetype ve Objective-C literals gibi sözdiziminden yararlanırken kullanmak istiyorum. Daha eski bir Xcode ile kullanmak için daha yeni bir Clang ve LLVM derlemeye çalıştı ve başarılı oldu mu?Daha yeni bir LLVM sürümünü derlemek ve Xcode ile kullanmak mümkün mü?

+1

'da değil, resmi olarak desteklememelisiniz. google "clang trunk xcode plugin" başlıyor. – justin

+1

@justin Bu konuda dayak yolu kapalı olması bekleniyor. Beni bu yönde işaret ettiğin için teşekkür ederim. –

+0

rica ederim. Neyse ki, diğerleri bunu açıkladı ve kullanımınız için eklentileri sağladı. – justin

cevap

8

En yeni LLVM/Clang sürümünü kullanmanın çeşitli yolları vardır.

(1) Eklentiler, yukarıdaki açıklamalar, örneğin anlatıldığı gibi: http://blog.wadetregaskis.com/tot-clang-llvm-in-xcode/

olarak bağlantılı blog yazısında belirttiği , hatalarının/Xcode gerçek zamanlı sözdizimi gelen uyarılar Xcode olarak kontrol alabilirsiniz libclang'ın eski bir sürümünü kullanır (daha fazlası (3) altındadır). İyi bir şekilde derleme olasılığı vardır, ancak düzenleme kaynak kodu çok eğlenceli olmayacaktır.

(2) Derleyiciyi CC bayrağını üzerinden ayarlayın. Bu muhtemelen en kolay/en hızlı çözümdür ve ayar sadece bir projeyi etkiler. Projenin Yapım Ayarlarına gidin, "Oluşturma Ayarı Ekle" -> "Kullanıcı Tanımlı Ayar Ekle" yi seçin (Xcode 5'de, bu Editör menüsünde gizlidir), CC olarak adlandırın ve değeri yolunuza ayarlayın. Clang versiyonu. Benim için iyi çalıştı, ancak (1) 'de olduğu gibi, özellikle hatalar gibi yeni sözdizimini kullanmak veya eski sürümün anlamadığı uyarılar için bayraklar iletmek istiyorsanız, canlı hata bildirimi ile çakışmalar yaşayabilirsiniz.

(3) Derleyiciyi değiştirin. Değiştirmeden önce tüm dosyaları yedeklediğinizden emin olun. Değiştirilmesi gereken iki dosya vardır: Clang ikili ve libclang.dylib. /Applications/Xcode.app/ -> Seçenek Tıklama -> "Paket İçeriğini Göster" ->/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr. clang /bin'da, libclang.dylib /lib numaralı dizindir.

Her iki ikili de ya kaynak kodlu olarak derlenebilir (bu da size daha yeni bir sürüm verir) ya da en son Xcode paketinden kopyalanabilir. Özel bir libclang sürümü kullanarak sorunla karşılaştım, ancak sorunun oradaki değişikliklerden kaynaklandığından şüpheleniyorum. Şüpheniz varsa, daha sonraki bir Xcode sürümünden libclang kullanın.

Not: Benim modifiye libclang ikili ARC kullanıyor ve bu nedenle çöp toplama ile çalışan Xcode 4 ile uyumsuz. Xcode 5'in kendisi ARC kullanıyor, böylece sorun ortadan kalktı. Eğer libclang'ı değiştirilmemiş olarak derlerseniz, bu sorunu Xcode 4 veya 5.

+1

Müthiş bilgiler, teşekkürler. –

İlgili konular