2012-03-27 11 views
10

ARMv6 gerekli mimari eksik Xcode4, gcc ilk sysroot dizinine ötesine ulaşmak için görünmüyor, iPhone OS için bir kukla programı derlemeye çalışırken olarak

$ echo $ISYSROOT 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk 
$ gcc -arch armv6 --sysroot=$ISYSROOT test.cpp 
ld: in /usr/lib/system/libcache.dylib, missing required architecture armv6 in file for architecture armv6 
collect2: ld returned 1 exit status 

ise Ben sysroot,

Aşağıdaki işler çalışır, ancak çok sevecen ve ölçeklenebilir değil. Burada neler oluyor?

$ gcc -arch armv6 -L$ISYSROOT/usr/lib/system --sysroot=$ISYSROOT test.cpp 

Güncelleme. Hala belli değil gerçi Görünüşe göre bu bu hata “ld görürseniz,

http://www.doitscared.com/?m=201104 kütüphane derlerken ld için gcc ama isysroot için sistemkökü geçmesine nasıl bilinen bir sorundur: değil dosya Bulunan: /usr/lib/system/libcache.dylib mimarisi için armv7 ″, o zaman sizin linker komutu, Xcode 4'te çalışmayan “–sysroot” kullanmaktadır. Bunun yerine “-isysroot kullanmak için linker komutunu değiştirin. ”. (Not: Bu yalnızca bağlayıcı komutu için geçerlidir derleme komutları “-sysroot” kullanmaya devam etmelidir fazla bilgi için buraya bakınız...)

+0

Teşekkürler! $ gcc -arch armv6 -L $ ISYSROOT/usr/lib/system --sysroot = $ ISYSROOT test.cpp bana yardımcı oldu! –

cevap

0

Değişim projenizin Dağıtım Hedef en az 4.3 olması ve işe yarayacak. Bu, XCode 4 ile ilgili bir sorundur, ancak uygulamaların 4.3'ten önceki iOS sürümlerine gerçekten dağıtılmasına gerek yoktur. iOS kullanıcıları iOS sürümleriyle oldukça güncel kalıyorlar.

+0

Eski bir iOS cihazı ile 4.2.1'de bu noktaya yükselemediğim için takıldım - sadece bunun için ncurses'i derlemek istedim. Hiçbir şey için teşekkürler. – Wyatt8740

İlgili konular