-
в Lazarus порядка 4мВ, а проект-всего одна форма. Код ниже unit unit1;
{$mode objfpc}{$H+}
interface
uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs;
type TForm1 = class(TForm) private { private declarations } public { public declarations } end;
var Form1: TForm1;
implementation
initialization {$I unit1.lrs}
end.
-
Это уже было. ближе к началу форума.
-
Я правильно понял речь в http://pda.delphimaster.net/?id=1080314033&n=11 шла о компиляции с командной строки с ключами, а в настройках IDE Lazarus возможно указать ключи компилятору для уменьшения размера выходного exe файла если да то в какой вкладке и опции настроек
-
По-моему, параметры можно задать в: Запуск\Настроить собрать + запустить файл - надо только правильно выбрать файл и задать параметры. Можно, наверное, загрузить их из файла: Запуск\Параметры компилятора\Загрузка/сохранение или, может быть, дополнительный файл настройки компилятора или Custom options Запуск\Параметры компилятора\ Вкладка "Другое"
Можно, наконец, облазить все меню Lazarus'a и посмотреть, что там к чему.
PS И, моежт быть перекомпилировать что-нибудь со smartlink
-
PS Можно еще написать программу на KOL, приспособленной под fpc.
-
Делал следующее в опции Lazarus Project/Compiler Option.../Linking в опции Link Libraries поставил Link Smart Далее в Project/Compiler Option.../Oter в опции Custom Option указал по совету из ссылки выше такие ключи -CX -XX -B -Xs
Итоговый файл exe код выше(одна форма) уменьшился с 4мВ до 3.5мВ
Собственно второе действие - указание ключей не повлияло вообще ни как, уменьшениие на 500кВ произошло от включения опции Link Smart
-
Удалено модератором Примечание: Дубль
-
По-хорошему, надо бы FCL и LCL перекомпилировать под smartlink. Дело в том, что опция Link Smart на самом деле влияет не на поведение линкера, а на список файлов, подлежащих линковке: либо это будут obj-файлы (не-smart), либо статические библиотеки (smart). Но генерация статических библиотек при компиляции юнитов происходит не всегда, а только при включенном Link Smart. И если библиотека не создана, а ключ "делать полный build" не указан, будет прилинковано "что уж есть", т.е. obj-файл целиком. А именно так, без генерации статических библиотек, и скомпилированы по умолчанию FCL и LCL. Почему так, не знаю. Может быть, из-за неполного доверия к качеству генерации библиотек (хотя я уже давно не натыкался на проблемы при их использовании), может быть - чтобы не раздувать дистрибутив раза в полтора. Дело в том еще, что если генерится статическая библиотека, obj-файл все равно генерится тоже.
-
Дебаги все отключи. Там наверное 80% всего размера отладочная информация.
-
>Дебаги все отключи. Там наверное 80% всего размера отладочная информация. Не факт, что именно она "раздувает" прогу. Для начала обработай файл утилитой strip (stripw) и сравни.
-
Снова:
Можно еще написать программу на KOL, приспособленной под fpc
glueCut (Cup?) Делает все что надо. Если Вы писали программы c KOL на Delphi, вам 300кб покажется много. Использование KOL при перекомпилированных runtimes позволяет делать нормальный размер.
Хотя, правда, больше, чем в Delphi... Почему?
-
To cyborg © Если не трудно можете указать точно какие опции нужно отключить в Lazarus что бы я лишнего чего не наотключал
To PVOzerski © Утилита Strip уменьшила файл с 4mB до 1.5mB это уже что то( хотя в Delphi 300kB аналог- разница 5 раз), ворос не повлияет ли это на работоспособность программы, может что нужное удалено?
To z007 К сожалению я не знаком с glueCut и KOL
-
Run-CompilerOptions-Linkink-Debugging Всё отключи.
Run-CompilerOptions-Code generation-Unit style - Smart
-
Для начала кое-что уже есть, да действительно отключил единственнную опцию Display Line Number in Run-time Error Backtraces (Выдавать номера строк в ошибках времени исполнения) exe уменьшился с 3.6 до 1.3 мВ (Smart Link включен).
<Small>Хотя для полного счастья это конечно же не то. Думаю ветку закрывать рано есть еще советы но вних надо разобраться. </Small>
-
Ребуилд проекта ещё сделай без отладочной информации, так все использыемые модули заново соберутся и размер должен уменьшиться.
|