2016-03-31 27 views
4

Xcodebuild kullanarak komut satırında bir iOS dinamik çerçeve oluştururken bu kimlik doğrulama hatasıyla karşılaşıyorum. ld kütüphane yüklenirken archive_file.cpp kaynak kodu (http://www.opensource.apple.com/source/ld64/ld64-253.3/src/ld/parsers/archive_file.cpp) görexcodebuild linker onaylama hatası


0 0x10163b342 __assert_rtn + 144 
1 0x101678a3a archive::File<arm64>::makeObjectFileForMember(archive::File<arm64>::Entry const*) const + 1138 
2 0x1016783e8 archive::File<arm64>::justInTimeforEachAtom(char const*, ld::File::AtomHandler&) const + 122 
3 0x10168ea75 ld::tool::InputFiles::searchLibraries(char const*, bool, bool, bool, ld::File::AtomHandler&) const + 265 
4 0x101697db8 ld::tool::Resolver::resolveUndefines() + 160 
5 0x10169a117 ld::tool::Resolver::resolve() + 79 
6 0x10163c060 main + 812 
7 0x7fff9dd4c5ad start + 1 
A linker snapshot was created at: 
/tmp/MyKit-2016-02-31-154836.ld-snapshot 
ld: Assertion failed: (memberIndex != 0), function makeObjectFileForMember, file /Library/Caches/com.apple.xbs/Sources/ld64/ld64-253.9/src/ld/parsers/archive_file.cpp, line 355. 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

o sembol yolsuzluk çeşit insan olduğu görülüyor. Ama bunun dışında, bu sorunun nasıl düzeltilebileceğine dair hiçbir fikrim yok.

Bu sorun, yalnızca "-fembed-bitcode" derleyici bayrağı ekleyerek bit kodumla çerçevemi oluşturmaya çalıştığımda ortaya çıkıyor.

Ayrıca, ld komutumda, birkaç statik kitaplığa karşı bağlanmaya çalışıyorum, bunlardan biri> 4.25 GB (bitcode yerleşik) ve bu boyut imzasız bir 32 bit tamsayı değerinin üzerindedir (~ 3.99 GB). Ben libtool ile büyük ikili libs işlemek için ilgili bir kaç sayı daha önce çalıştım, bu yüzden bu benim şüphem biridir.

Kimse benzer sorunlar gördü veya nasıl düzeltileceğini anladı mı? Teşekkür

birkaç ilişkili sorular

Weird xCode linker error I've never seen before saying "Assertion failed"

https://github.com/SciRuby/nmatrix/issues/69

http://lists.llvm.org/pipermail/llvm-dev/2013-October/066722.html

https://github.com/TrinityCore/TrinityCore/issues/14689

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57438

+1

4.25 GB static library?!? : – Almo

cevap

5

ld: Assertion failed: (memberIndex != 0) ... olan sizin hatanışın hatasını okumak ister misiniz? Follow this link

Ayrıca, statik kitaplığınızın boyutu konusunda endişelenmeyin. Bağlayıcı, son yürütülebilir dosyadaki tüm gereksiz bilgileri kaldıracaktır. Lütfen here

TL; DR sürümü: Command-Option-Shift-K kullanarak

  1. Temiz proje. Ayrıca, Window > Organizer'u seçip Projects sekmesine geçin. Derived Data klasör adının sağındaki sağ oku tıklatın, Derived Data klasörünü silin ve XCode'u yeniden başlatın.

  2. senin project's settings =>Linking->Other linker flags =>-v eklemek bulmak içinde Build Settings gidin. Bu hala hata durumunda, hataya neden olan tam bozuk dosyayı gösterecektir. Eğer bir daha hata yaparsanız, lütfen bozuk dosyanın yolunu buraya gönderin, buradan çalışabiliriz.

  3. Sorununuzun nedeni, statik kitaplığınızdan biri bozuk nedenidir. 4.25 gb lib'inizi kaldırabilir ve sorunun bu olup olmadığını görmek için tekrar yeniden oluşturabilirsiniz. Projenizin target settings -> build phases -> link binary with libraries kapsamında. Hata gider, bu olabilir. Bu durumda, lib'in adını vermek ister misiniz?

+0

teşekkürler. # 1 ve # 2 denedim ve bana aynı hatayı veriyorlar. -ve çok fazla bilgi vermez. # 3 için, linker, çerçeveyi bağlarken kodun diğer bölümleri tarafından ihtiyaç duyulduğundan statik kütüphaneyi kaldırırsam, çözümlenmemiş sembol hatasını şikayet eder. – dennycd

+0

Kütüphane ne denir? Ayrıca, proje ayarlarında 'Hata Ayıklama Sembolleri Oluştur ', bina oluştururken statik kütüphanenin boyutunu azaltmanıza yardımcı olabilir. – donkey