I uaktualniony Xcode wersję i podczas korzystania z zewnętrznych bibliotek statycznych, dostaję komunikat:
ld: plik jest uniwersalny (3 wycinki), ale nie zawiera (n) wycinka armv7s: / file / location for architektury armv7s clang: error: polecenie linkera nie powiodło się z kodem wyjścia 1 (użyj -v, aby zobaczyć wywołanie)
Czy jest jakiś sposób na obejście tego i dodanie obsługi biblioteki, jeśli twórca biblioteki nie zaktualizował jeszcze swojej biblioteki?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
źródło
źródło
Odpowiedzi:
Jeśli chcesz usunąć obsługę dowolnej architektury, na przykład ARMv7-s , użyj menu Projekt -> Ustawienia kompilacji -> usuń architekturę z „prawidłowych architektur”.
Możesz użyć tego jako rozwiązania tymczasowego do czasu aktualizacji biblioteki. Musisz usunąć architekturę z głównego projektu, a nie z biblioteki.
Alternatywnie możesz ustawić flagę dla konfiguracji debugowania „Buduj tylko architekturę aktywną” na Tak. Pozostaw opcję „Kompiluj tylko architekturę aktywną” w konfiguracji wersji na Nie, aby otrzymać przypomnienie przed wydaniem, że należy zaktualizować używane biblioteki innych firm.
źródło
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
jednak linker, który mogłem rozwiązać tylko poprzez dodaniei386
do listy prawidłowych architektur.Po prostu przestawiłem opcję „Buduj tylko aktywną architekturę” na „Tak” w ustawieniach kompilacji celu i teraz jest OK!
źródło
Spróbuj usunąć armv7s z „Poprawnej architektury” projektu, aby zwolnić z tego problemu dla telefonu z systemem iOS 5.1
źródło
Właśnie opublikowałem tutaj poprawkę , która obowiązywałaby również w tym przypadku - w zasadzie wykonujesz szesnastkowo znajdź i zamień w bibliotece zewnętrznej, aby myśleć, że jest to kod ARMv7s. Powinieneś być w stanie
lipo
podzielić go na 3 biblioteki statyczne, powielić / zmodyfikować ARMv7, a następnie użyćlipo
ponownie, aby skompletować nową bibliotekę dla wszystkich 4 architektur.źródło
Obsługa Flurry dla iPhone'a 5 (ARMv7s) Jak wspomniałem we wczorajszym poście, Flurry rozpoczął pracę nad wersją iOS SDK do obsługi procesora ARMv7s w nowym iPhonie 5 natychmiast po ogłoszeniu w środę.
Z przyjemnością informuję, że praca została zakończona, a pakiet SDK jest już dostępny na stronie.
źródło
użyj menu Projekt -> Ustawienia kompilacji ->
następnie usuń armv7 z „poprawnych architektur”. Jeśli wybrano standard, usuń go, a następnie dodaj armv7.
źródło
W przypadku, gdy stanie się to komuś. Zbudowałem własną bibliotekę do użytku z kodem innej firmy. Podczas budowania go do dostarczenia, przypadkowo zostawiłem podłączonego iPhone'a 4S, więc Xcode zbudował moją bibliotekę tylko dla architektury podłączonej zamiast postępować zgodnie z ustawieniami projektu. Usuń wszystkie podłączone urządzenia i przebuduj bibliotekę, połącz je i powinieneś być w porządku.
Mam nadzieję, że to pomoże.
źródło
W moim przypadku łączyłem się z biblioteką innej firmy, która była nieco stara (opracowana dla iOS 6 na XCode 5 / iOS 7). Dlatego musiałem zaktualizować bibliotekę innej firmy, wykonać czyszczenie i kompilację, a teraz kompilacja przebiega pomyślnie.
źródło