Jeśli jest to część Twojej troski, biblioteka statyczna to tylko odpowiednie pliki .o zarchiwizowane razem oraz część księgowa. Tak więc statyczna biblioteka o pojemności 1,7 mb - nawet jeśli kod w niej znajduje się w całości 1,7 MB - zazwyczaj nie doda 1,7 miliona do twojego produktu. Obowiązują zwykłe zasady dotyczące usuwania kodów martwego kodu.
Poza tym można zmniejszyć wbudowany rozmiar kodu. Poniższe prawdopodobnie nie jest wyczerpującą listą.
W ustawieniach budowania celu wybierz "Poziom optymalizacji". Przełączając to na "Najszybszy, Najmniejszy -O", pozwolisz kompilatorowi poświęcić trochę prędkości na rozmiar.
Upewnij się, że budujesz dla kciuka, tym bardziej kompaktowy kod ARM. Zakładając, że korzystasz z LLVM, oznacza to, że nie musisz mieć -mno-thumb
w dowolnym miejscu ustawień projektu.
Należy również rozważyć, dla których architektur chcesz zbudować. Apple nie zezwala na przesyłanie aplikacji obsługującej zarówno ARMv6, jak i iPhone'a 5 i całkowicie zrzuciło obsługę ARMv6 z najnowszego Xcode. Więc prawdopodobnie nie ma sensu, w tym w tym momencie.
+1 za wskazanie, że rozmiar biblioteki librarskiej nie doda dokładnie do rozmiaru binarnego, ponieważ linker zwykle optymalizuje duży czas. – Till
Dzięki, @Tommy. To czyści wiele rzeczy – johngraham
@Tommy Co się stało, jeśli użytkownik określił -all_load lub -force_load? – klefevre