Pete Goodliffe'nin betiği, mevcut SDK'sında llvm-gcc olan gcc kullanarak destek oluşturur. Boost.Build sistemi, gcc'yi algılar ve GCC kullanımdayken dosya sistemi kütüphanesi tarafından kullanılan istisnai makroların bazıları için belirli şeyler için bir dizi görünürlük makroları sağlar. Varsayılan olarak, geçerli SDK kullanılarak oluşturulan iOS uygulamaları clang kullanacaktır. Yükseltme yapılandırma üstbilgileri, kullanımdayken de clang'i algılar ve bu görünürlük makroları aynı şekilde yapılandırılmaz. Bu, uygulamanızı artırmaya karşı oluşturmak için clang kullandığınızda, ancak gcc ile oluşturulan bir destek kitaplığı kullandığınızda bazı bağlayıcı uyarılarına yol açar, örn. İstisna sınıfları için vtable ve destructor görünürlük hakkında. Dize, bu sınıflardan birine geçtiğinde, dosya sistemi :: exists() öğesini çağırdığınızda gerçekleşmesi muhtemel olan, yıkıcıda bir kilitlenme görürsünüz.
Bu özel örnek için, sorun giderme ile görünürlüğü artırarak sorunu giderebilirsiniz = varsayılan, ancak bu önemsiz olmayan uygulamalar için iyi çalışma olasılığı yoktur. Şimdiye kadar, en iyi bahis, derleyiciyi clang ++ 'a ayarlamaktır. Böylece, uygulamayı oluştururken yaptığınız gibi kütüphaneyi oluştururken aynı görünürlük ayarlarına sahip olursunuz. Şu anda kullanıyorum user-config.jam o komut dosyası ve Xcode 4.2.x ile (benim değiştirilmiş sürümü) kullanıyorum. Bunları komut dosyanızda ayarlamıyorsanız, $ IPHONE_SDKVERSION, ARM_DEV_DIR ve SIM_DEV_DIR değerini değiştirmeniz gerektiğini unutmayın. Benim için onlar sırasıyla iphone ve simülatör SDK'larından 5.0 ve bin dizinleri, konum: Şimdiye kadar
using darwin : $IPHONE_SDKVERSION~iphone
: ${ARM_DEV_DIR}clang++
: <striper>
<compileflags>"-arch armv7 -fvisibility=hidden -fvisibility-inlines-hidden $EXTRA_CPPFLAGS"
: <architecture>arm <target-os>iphone
;
using darwin : $IPHONE_SDKVERSION~iphonesim
: ${SIM_DEV_DIR}clang++
: <striper>
<compileflags>"-arch i386 -fvisibility=hidden -fvisibility-inlines-hidden $EXTRA_CPPFLAGS"
: <architecture>x86 <target-os>iphone
;
, iyi çalışıyor gibi görünüyor; Kendimi tamamen artırma konusunda yeterince test edemedim, destekle ilgili herhangi bir sorun yaşanmadı, ancak bu yeni iPhone projelerini tekrar llvm-gcc'ye götürmekten daha kolay görünüyor.