Cоздаваемые в Lazarus исполняемые файлы имеют довольно большой размер. Причин несколько. Во-первых, в exe-файле сохраняется вся отладочная информация. Во вторых - создаваемый exe-файл оптимизирован под скорость выполнения, а не под размер.
Чтобы уменьшить размер исполняемого файла необходимо в свойствах проекта (Проект - Параметры проекта) включить 4 ключа компиляции:
1) Вкладка Генерация кода: установить флажок "Умная компоновка" (-СХ);
2) Вкладка Компоновка: установить флажок "Умная компоновка" (-ХХ);
3) Вкладка Компоновка: установить флажок "Использовать внешний файл отладочных символов GDB"(-Xg);
4) Вкладка Компоновка: установить флажок "Вырезать символы из исполняемого файла"(-Xs).
Эта настройка позволяет сократить размер исполняемого файла в несколько раз. (Пустой проект с 12 МБ сокращается до 1 МБ).
Однако, можно еще сократить размер, если воспользоваться утилитами strip.exe и upx.exe. Первая вырезает из файла отладочную информацию, вторая сжимает запускаемый файл. Удобно создать bat-файл
compress.bat
strip.exe --strip-all %1 upx.exe --best %1
и запускать сжатие одной командой:
compress.bat project1.exe
Утилиты прикреплены ниже.
Прикрепленный файл | Размер |
---|---|
Утилиты компрессии exe-файла Lazarus | 401.35 кб |
Комментарии
Здравствуйте,создал проект написал программу на лазарус,потом выставил и убрал все галочки для удаления отладочной инфы, сохранил и собрал проект ..но размер файла как был мегабайтный так ничего и не изменилось..
что я делаю не так?
и второй вопрос: скачал я утилиты компрессии exe-файла лазарус и как ими пользоваться?
если есть возможность объясните мне эти два вопроса по шагам
с Уважением Юрий
Исполняемый файл, скомплированный в Lazarus, размером 1 мб - это уже хороший результат. Большего средствами Lazarus врядли можно добиться. Утилита же upx.exe позволяет сжать любой не сжатый exe-файл. Чтоб посмотреть настройки запустите ее с ключом upx.exe /?
Спасибо Вам огромное! Очень полезный совет для начинающих, а то проблема с размером exe уже начала отпугивать от Lazarus.