Конференция "FreePascal" » Почему тако большой размер exe файла откомпилированного [Win32]
 
  • R (16.05.04 07:22) [0]
    в 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.
  • z007 (16.05.04 22:26) [1]
    Это уже было. ближе к началу форума.
  • R (17.05.04 07:16) [2]
    Я правильно понял речь в http://pda.delphimaster.net/?id=1080314033&n=11 шла о компиляции с командной строки с ключами, а в настройках IDE Lazarus возможно указать ключи компилятору для уменьшения размера выходного exe файла
    если да то в какой вкладке и опции настроек
  • z007 (17.05.04 21:07) [3]
    По-моему, параметры можно задать в:
    Запуск\Настроить собрать + запустить файл
    - надо только правильно выбрать файл и задать параметры.
    Можно, наверное, загрузить их из файла:
    Запуск\Параметры компилятора\Загрузка/сохранение
    или, может быть, дополнительный файл настройки компилятора или Custom options
    Запуск\Параметры компилятора\ Вкладка "Другое"

    Можно, наконец, облазить все меню Lazarus'a и посмотреть, что там к чему.

    PS И, моежт быть перекомпилировать что-нибудь со smartlink
  • z007 (17.05.04 21:10) [4]
    PS Можно еще написать программу на KOL, приспособленной под fpc.
  • R (18.05.04 03:09) [5]
    Делал следующее в опции 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
  • PVOzerski © (18.05.04 10:19) [6]
    Удалено модератором
    Примечание: Дубль
  • PVOzerski © (18.05.04 10:19) [7]
    По-хорошему, надо бы FCL и LCL перекомпилировать под smartlink. Дело в том, что опция Link Smart на самом деле влияет не на поведение линкера, а на список файлов, подлежащих линковке: либо это будут obj-файлы (не-smart), либо статические библиотеки (smart). Но генерация статических библиотек при компиляции юнитов происходит не всегда, а только при включенном Link Smart. И если библиотека не создана, а ключ "делать полный build" не указан, будет прилинковано "что уж есть", т.е. obj-файл целиком. А именно так, без генерации статических библиотек, и скомпилированы по умолчанию FCL и LCL. Почему так, не знаю. Может быть, из-за неполного доверия к качеству генерации библиотек (хотя я уже давно не натыкался на проблемы при их использовании), может быть - чтобы не раздувать дистрибутив раза в полтора. Дело в том еще, что если генерится статическая библиотека, obj-файл все равно генерится тоже.
  • cyborg © (18.05.04 10:49) [8]
    Дебаги все отключи. Там наверное 80% всего размера отладочная информация.
  • PVOzerski © (18.05.04 10:59) [9]
    >Дебаги все отключи. Там наверное 80% всего размера отладочная информация.
    Не факт, что именно она "раздувает" прогу. Для начала обработай файл утилитой strip (stripw) и сравни.
  • z007 (18.05.04 23:37) [10]
    Снова:

    Можно еще написать программу на KOL, приспособленной под fpc

    glueCut (Cup?) Делает все что надо.
    Если Вы писали программы c KOL на Delphi, вам 300кб покажется много. Использование KOL при перекомпилированных runtimes позволяет делать нормальный размер.

    Хотя, правда, больше, чем в Delphi... Почему?
  • R (19.05.04 06:52) [11]
    To
    cyborg ©

    Если не трудно можете указать точно какие опции
    нужно отключить в Lazarus что бы я лишнего чего не наотключал

    To
    PVOzerski ©  

    Утилита Strip уменьшила файл с 4mB до 1.5mB это уже что то(
    хотя в Delphi 300kB аналог- разница 5 раз),
    ворос не повлияет ли это на работоспособность программы,
    может что нужное удалено?

    To
    z007  

    К сожалению я  не знаком с glueCut и KOL
  • cyborg © (19.05.04 08:05) [12]
    Run-CompilerOptions-Linkink-Debugging
    Всё отключи.

    Run-CompilerOptions-Code generation-Unit style - Smart
  • R (19.05.04 09:22) [13]
    Для начала кое-что уже есть, да действительно
    отключил единственнную опцию
    Display Line Number in Run-time Error Backtraces
    (Выдавать номера строк в ошибках времени исполнения)
    exe уменьшился с 3.6 до 1.3 мВ (Smart Link включен).

    <Small>Хотя для полного счастья это конечно же не то. Думаю ветку закрывать рано есть еще советы но вних надо разобраться.
    </Small>
  • cyborg © (20.05.04 09:01) [14]
    Ребуилд проекта ещё сделай без отладочной информации, так все использыемые модули заново соберутся и размер должен уменьшиться.
 
Конференция "FreePascal" » Почему тако большой размер exe файла откомпилированного [Win32]
Есть новые Нет новых   [119256   +38][b:0][p:0.001]