2016-02-18 35 views
8

Birden fazla uygulamaya sahip büyük bir projemiz var. Bu nedenle ortak kodu tek dinamik çerçeveye taşıdık. Şimdiye kadar 64 bit cihazlarda iyi çalışıyor, ancak aşağıdaki gibi 32 bitlik cihazlarda bir kilitlenme sahip:Xcode 7.2 Dinamik Çerçeve 32 bit aygıt hatası

dyld: REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB has segment 0 which is not a writable segment (__TEXT) in 
/path/to/MyApp.app/Frameworks/MyFramework.framework/MyFramework 

Biraz arka planı: Biz ettik ffmpeg ve birkaç diğer yağ kütüphaneleri ARM64, ARMv7 ve x86_64 mimarileri karşı derlenmiş sonra çerçeveye eklendi. Linker bayrağına -read_only_relocs suppress ekleyerek çözülen bazı metin değiştirme hataları vardı.

Ffmpeg ve ilgili kitaplıkları çıkarırsak, 32 bit aygıtlarda iyi çalışır.

Böyle bir hatayla karşılaşan oldu mu? Herhangi bir işaretçi veya yardım çok takdir edilecektir.

cevap

0

Çerçevenizdeki Mach-O Tipi için "Dinamik Kitaplık" kullanırken aynı sorunu yaşıyorduk. "Değiştirilebilir Nesne Dosyasına" geçiş sorunu çözdü. Sorun kütüphanelerde metin yerleştirme ile ilgili gibi görünüyor. Daha fazla bilgi here tarif edildiği gibi

. "Bir metin yer değiştirme mutlak adresleme modunda kullanarak çalışma zamanında bir değişken adres içeren bir nesne için bir referans sonucudur kendisini kodlayan kullanıcı adresini ve bu nedenle yürütülebilir metin içeren çalışma zamanında gerçek yükleme adreslerini dikkate alırken ikili doğru adres içerecek şekilde değiştirilmelidir. "

FFMPEG kullanım metin taşınma ve Android M (https://trac.ffmpeg.org/ticket/4928) yapacaklar yakın zamanda sabit olmadığından

üzerinde büyük bir sorun olmuştur, "Değiştiren Nesne Dosya" tek seçenek gibi görünüyor.