Если создать простое приложение «Hello, world!» на Lazarus (описанное в предыдущей статье), то его размер будет достаточно велик для такой простейшей программы — порядка 15 МБ. Почему бинарные файлы, созданные в Lazarus такие большие? Давайте разберемся.
Во-первых, с настройками по-умолчанию, в бинарный файл помещается отладочная информация, позволяющая проводить дебаг и устанавливать точки останова программы.
Также стоит отметить, что в полученную программу «Hello, world!» включено множество возможностей, таких как:
- практически все виджеты Lazarus Component Library (LCL)
- Все Runtime библиотеки Free Pascal
- работа с XML
- библиотеки для обработки файлов рисунков типа png, bmp и ico
Это делает размер приложения довольно большим.
Начальный размер исполняемого файла Lazarus велик, однако растет в дальнейшем довольно медленно.
Итак, основной путь уменьшения размера получаемого файла — настройка параметров компиляции.
1. Проект | Параметры прокета | Генерация кода | Умная компоновка (-CX) -> Поставить галочку
2. Проект | Параметры прокета | Компоновка | Выдавать номера строк в ошибках времени выполнения (-gl) -> Убрать галочку
3. Проект | Параметры прокета | Компоновка | Использовать внешний файл отладочных символов GDB (-Xs) -> Поставить галочку
4. Проект | Параметры прокета | Компоновка | Умная компоновка (-XX) -> Поставить галочку
Кроме того, можно поставить галочку «использовать текущие параметры по умолчанию для новых проектов» и Lazarus запомнит эти настройки.
Проведя настройки и скомпилировав приложение снова, мы увидим, что размер его сократился с 14,5 МБ до 1,62 МБ что вполне вполне допустимо, учитывая что размер уже не будет расти слишком быстро.
Для того чтобы быть уверенным, что отладочная информация не попала в исполняемый файл можно воспользоваться утилитой «strip» для ее удаления. Она находится в каталоге Lazarus’а:
c:\lazarus\fpc\2.6.0\bin\i386-win32\strip.exe
Пример использования:
strip --strip-all <путь к исполняемому файлу>
Данная процедура вырежет всю отладочную информацию из исполняемого файла, если она там оказалась.
Ну и в заключение, для желающих получить особо компактное приложение, можно воспользоваться утилитой UPX или аналогом для сжатия самого исполняемого файла. Следует, конечно сказать, что у этого метода есть свои достоинства и недостатки. Не буду здесь перечислять их все скажу лишь о главных.
- размер исполняемого файла уменьшается в 2-3 раза и распаковка происходит незаметно для пользователя, а многие пользователи обращают внимание на размер программы.
- Сжатые UPX программы многие антивирусы довольно часто воспринимают как вредоносные программы.
Тем не менее, если воспользоваться упаковщиком в нашем случае со следующими параметрами:
upx.exe --best --lzma project1.exe
размер нашей программы сократиться до 551 КБ.
Надеюсь теперь размер получаемого приложения Вас не отпугнет.
One comment to this article
Pingback:
Установка Lazarus (Windows) | Subreal Team