Сравнение размера кода двоичного изображения между статической библиотекой Cocoa Touch и динамической библиотекой DLL - PullRequest
1 голос
/ 18 марта 2011

Я мигрирую динамическую библиотеку DLL C ++ из ОС Windows в iOS со статической библиотекой (.a). И возникают некоторые проблемы с размером двоичного изображения. Вот некоторые данные, которые я получил.

Размер изображения:

динамическая библиотека (DLL скомпилирована в ОС Windows): 1.4M

статическая библиотека (.a, соответствует статической библиотеке Touch): 34M.

Я проверил каждый соответствующий исходный файл C ++ между 'Obj' и 'o'. Их размер почти одинаков. Между тем, после их объединения размер DLL составляет 1,4 М, а размер изображения «.a» составляет 34 М. Кажется, размер изображения «.a» приблизительно равен сумме всех Файлы '.o'.

Есть ли какие-либо предложения и рекомендации по переносу кода C ++ на iOS? Особенно в отношении размера изображения.

Существует ли какой-либо флаг ссылки для компиляции исходного кода C ++ в проекте статической библиотеки Cocoa Touch?

1 Ответ

1 голос
/ 18 марта 2011

В системах на основе Unix (включая iOS) файл ".a" - это просто архив (man 5 ar), объединяющий несколько файлов ".o" в одном блоке (возможно, с включением таблицы символов).).Итак, ваши наблюдения показывают, что размер файла ".a" является суммой файлов ".o" в точности.

Когда вы связываете приложение с файлом ".a", конечный исполняемый файл будетвключать только те элементы файла ".a", на которые есть ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...