Как уменьшить размер программы lazarus

Когда я впервые взглянул на размер исполняемого файла, скомпилированного с помощью Lazarus, то был немало удивлён его исполинским размером. Это было давно, однако в текущей версии проблема только усугубилась. Проект из пары не слишком сложных форм с сотней-другой строк кода приводит к генерации исполняемого файла, размер которого превышает 6 Мб.

В общем-то, в процессе работы над проектом это не слишком напрягает, но когда надо продемонстрировать результат заказчику, могут возникнуть осложнения. Если это огромная система с десятками форм и мегабайтами кода, то несколько завышенный размер приложения только придаст ему значительности. Иначе, сами понимаете, в Вашей компетентности могут усомниться.

Бороться с этим совсем не сложно. В комплекте с компилятором имеется набор разных замечательных утилит. Среди них есть две, специально предназначенные для нашего случая. Это strip и upx. Первая из них удаляет из файла программы всю лишнюю информацию, вторая — подвергает файл компрессии. Для простоты применения скопируем обе утилиты в каталог с нашим раздутым exe-файлом.

Как уменьшить размер программы в Lazarus

Этого можно не делать, если путь к исполняемым файлам компилятора Вы поместили в переменную окружения PATH (что я очень рекомендую проделать). Теперь запустим их в DOS-окне последовательно, указав имя файла в качестве параметра:

strip myhuge.exe
upx myhuge.exe

Совсем уж ленивые могут проделать тоже самое в проводнике Windows с помощью drag-and-drop’а. Вообще говоря, у обеих утилит есть различные параметры запуска, но и по-умолчанию они справляются с задачей на отлично, уменьшая размер примерно в 3 раза каждая. Мой тестовый проект «похудел» с 6 Мб до 470 кб. Сам Lazarus можно сократить таким путём с примерно 20 Мб до менее чем двух.

Читайте также:
Сага кросс стич как пользоваться программой

Только не забывайте, что в Windows программа , обработанная upx, будет загружена в память дважды: в упакованном состоянии и в распакованном, рабочем состоянии.

Что делать, если Вы нашли ошибку в FCL?

Странный вопрос. Конечно-же исправить! Но не торопитесь праздновать. Чтобы Ваши исправления вступили в силу, придётся перекомпилировать FCL. Звучит пугающе, но на самом деле это просто. Во-первых, нет смысла перекомпилировать всю FCL.

Во-вторых, Вам надо будет всего лишь выполнить 2 простые команды. Сначала запустите сеанс MS DOS (или консоль Linux) и перейдите в каталог той части FCL, где вы вносили изменения (например lazarusfpcsrcfcldb). Теперь просто наберите в командной строке

make

и нажмите ввод. Это не сработает, если путь к исполняемым файлам компилятора Free Pascal не находится в переменной PATH. Заметьте также, что если у Вас есть другая утилита make и путь к ней в переменной PATH указан раньше, то проблем не миновать. Если указанные симптомы имеют место и ничего нельзя сделать, то в крайнем случае можно запустить make с указанием полного пути:

C:lazarusppbini386-win32make

Что же произойдёт? В каждом каталоге исходников FCL присутствует специальный файл с подробным описанием того, как эти исходники надо компилировать. Когда Вы запускаете утилиту make из такого каталога, она читает этот файл и производит необходимые вызовы компилятора. Результаты его работы будут хорошо видны на экране в виде быстро бегущих строчек результатов компиляции. Если Вы не получили сообщение об ошибке, то снова запустите make, но уже с параметром:

make install

Эта команда перенесёт скомпилированные модули в то место, где по её информации их ожидает найти FPC. Обычно это место — каталог «C:ppunitsi386-win32fcl», однако в нашем случае корневой каталог компилятора не «C:pp», а «C:lazaruspp». В Linux такой проблемы, скорее всего, не возникнет. В Windows поступим предельно бесхитростно: просто скопируем файлы из «C:ppunitsi386-win32fcl» в «C:lazarusppunitsi386-win32fcl».

Читайте также:
Программа fox one как пользоваться

Теперь хорошо-бы перекомпилировать и сам Lazarus. Если внесённые Вами исправления привели к изменению интерфейса каких-либо классов FCL, то это придётся сделать обязательно.

Источник: www.freepascal.ru

Как уменьшить размер программы в Lazarus

Основы программирования 2.0

Среда разработки Lazarus очень похожа на Делфи. Однако все мои знакомые программисты, которым по тем или иным причинам приходилось “пересаживаться” с Делфи на Lazarus, при компиляции первой же программы буквально охреневали от одной особенности Lazarus. А именно — от очень большого размера исполняемого файла (EXE-файла) откомпилированной программы.

Ну например, если графическое приложение, которое ничего не делает (пустое окно), после компиляции в Делфи занимает примерно 385 килобайт, то такое же приложение, созданное с помощью Lazarus, “весит” около 15 МЕГАбайт. То есть в 40 раз больше!

На самом деле всё не так страшно. Просто Lazarus по умолчанию “пихает” в ЕХЕ-файл отладочную информацию, которая и занимает так много места.

Избавиться от этого достаточно просто — надо в настройках проекта запретить включать в исполняемый файл отладочную информацию. Для этого выбираем меню:

ПРОЕКТ — ПАРАМЕТРЫ ПРОЕКТА (или нажимаем SHIFT+CTRL+F11)

Как уменьшить размер EXE-файла в Lazarus

а в открывшемся окне в группе ПАРАМЕТРЫ КОМПИЛЯТОРА выбираем ОТЛАДКА. Здесь снимаем галочку у надписи “Генерировать отладочную информацию…” и нажимаем кнопку ОК (см. рис.).

Как уменьшить размер исполняемого файла в Lazarus

Ну вот и всё. Осталось только перекомпилировать вашу программу, и вы увидите, что размер исполняемого файла стал намного меньше. Правда, он всё-равно будет немного больше, чем такая же программа, созданная в Делфи. Но это уже плата за бесплатность Lazarus.

Уменьшение размера исполняемого файла в Lazarus

Cоздаваемые в Lazarus исполняемые файлы имеют довольно большой размер. Причин несколько. Во-первых, в exe-файле сохраняется вся отладочная информация. Во вторых — создаваемый exe-файл оптимизирован под скорость выполнения, а не под размер.

Читайте также:
Какие расширения может иметь исполняемый файл программы

Чтобы уменьшить размер исполняемого файла необходимо в свойствах проекта (Проект — Параметры проекта) включить 4 ключа компиляции:

1) Вкладка Генерация кода: установить флажок «Умная компоновка» (-СХ);
2) Вкладка Компоновка: установить флажок «Умная компоновка» (-ХХ);
3) Вкладка Компоновка: установить флажок «Использовать внешний файл отладочных символов GDB»(-Xg);
4) Вкладка Компоновка: установить флажок «Вырезать символы из исполняемого файла»(-Xs).

Уменьшение размера исполняемого файла в Lazarus

Эта настройка позволяет сократить размер исполняемого файла в несколько раз. (Пустой проект с 12 МБ сокращается до 1 МБ).

Однако, можно еще сократить размер, если воспользоваться утилитами strip.exe и upx.exe. Первая вырезает из файла отладочную информацию, вторая сжимает запускаемый файл. Удобно создать bat-файл

compress.bat

strip.exe —strip-all %1 upx.exe —best %1

и запускать сжатие одной командой:

Утилиты прикреплены ниже.

Прикрепленный файлРазмер
Утилиты компрессии exe-файла Lazarus 401.35 кб

Источник: grafika.me

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru