FAQ по Lazarus

1. Почему исполнимые файлы, создаваемые в Lazarus, такие большие, и как уменьшить их размер?
В отличие от Delphi, использующей собственный отладчик, Lazarus использует для отладки внешнюю программу gdb (GNU Debugger) и вынужден включать в компилируемые исполнимые файлы информацию, помогающую этому отладчику в работе. Объём такой информации может в несколько раз превышать объём вашего собственного кода.
Уменьшить размер исполнимых файлов, получаемых с помощью Lazarus, можно двумя путями. Во-первых, вы можете воспользоваться консольной утилитой strip, чтобы удалить отладочную информацию из уже собранных исполняемых файлов. В Windows-версии Lazarus эта утилита находится в каталоге c:lazarusfpc2.4.3bini386-win32strip.exe (версия FPC в вашем случае может отличаться). Для удобства использования strip вы может создать bat-файл, включи в него вызов команды strip, которой в качестве первого параметра командной строки передан ключ --strip-all, а в качестве второго — имя вашего исполнимого файла:

strip --strip-all <имя исполнимого файла>

Второй способ позволяет исключать отладочную информацию уже на этапе компиляции вашего проекта. Нужный эффект достигается включением всего-лишь одной опции в параметрах проекта:

Применение любого их описанных выше способов позволяет значительно сократить размер получаемых файлов (пустой проект уменьшается примерно на 12 Мбайт для текущей версии Lazarus). Если вы хотите ещё немного уменьшить вашу программу, вы можете воспользоваться exe-упаковщиком UPX, который запаковывает исполнимые файлы, а при их запуске распаковывает оригинальный код непосредственно в память. Используя UPX можно сократить размер исполнимого файла ещё в 2-3 раза.

2. Могу ли я создавать коммерческие приложения, используя Lazarus?
Да, библиотека LCL разрабатывается под лицензией LGPL, что позволяет использовать её без открытия кода вашего приложения. Однако, модификации и расширения LCL должны распространяться с исходным кодом. Все модули LCL размещаются в подкаталоге «lcl». Также доступен список модулей, входящих в LCL. Если в вашем коде вызываются модули, которых нет в этом списке, вероятно, вы используете компонент, не являющийся частью LCL. Сам же Lazarus (IDE) использует лицензию GPL.
Также стоит помнить, что в составе Lazarus есть дополнительные компоненты, разработанные участниками сообщества. Некоторые из этих компонентов распространяются под лицензиями, отличными от лицензии самого Lazarus. Если вы используете такие компоненты, вы должны уточнить их лицензию. Обычно необходимое пояснение приводится в исходном коде файлов соответствующего пакета. Большинство дополнительных компонентов от сторонних разработчиков можно найти в подкаталоге «components» основного каталога Lazarus.

Более полный список частых вопросов, касающихся Lazarus, доступен на официальном сайте.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *