Уменьшение исполняемого файла в Lazarus (FPC)
Модератор: Модераторы
-
vstem
- новенький
- Сообщения: 22
- Зарегистрирован: 16.05.2005 15:27:06
- Откуда: Minsk, Belarus
- Контактная информация:
Многие ругают компилятор за "тучность" генерируемого исполняемого файла...
Порывшись в 'man fpc' и настройках Lazarus, это как кому удобно, сделал приятное открытие.
Включение опций -Cx и -XsX для fpc уменьшает размер простого GTK2 (только форма) приложения с 416 килобайт до 65, аналогичные опции (в диалоге настроек компилятора в Lazarus) а также отключение добавления Debug Info делают из 6-ти мегабайтной формы файл размером 1,2 мегабайта, что с учетом UPX (500 кб после сжатия) весьма приемлимо...
Насколько я понимаю такой подход реально включает смартлинк...
Единственное "но" - не получается с такими опциями собрать сам Lazarus - может поможете?
Порывшись в 'man fpc' и настройках Lazarus, это как кому удобно, сделал приятное открытие.
Включение опций -Cx и -XsX для fpc уменьшает размер простого GTK2 (только форма) приложения с 416 килобайт до 65, аналогичные опции (в диалоге настроек компилятора в Lazarus) а также отключение добавления Debug Info делают из 6-ти мегабайтной формы файл размером 1,2 мегабайта, что с учетом UPX (500 кб после сжатия) весьма приемлимо...
Насколько я понимаю такой подход реально включает смартлинк...
Единственное "но" - не получается с такими опциями собрать сам Lazarus - может поможете?
Вроде все это в <a href='http://freepascal.ru/article//freepascal/20050520001454/' target='_blank'>FAQ</a> написано.
на старую ветку отсылать не буду - лень искать
чтобы это попытаться сделать надо в fpc.cfg добавить -CX -XX
дальше собирать lazarus как обычно (точнее из командной строки)
если не получается, то нехватает памяти, предположительно нужно от 512Mb-1024Mb
здесь есть люди у которых получилось, у меня нет
увличение свопа (файла подкачки) не факт, что поможет
а вот эффект говрят действительно ощутимый
---
Дополнительно добавлю - есть какие-то проблемы с гнушным линкером, поэтому сейчас ведется разработка внутреннего линкера для fpc, на днях об этом упоминалось в мейл-листе
Единственное "но" - не получается с такими опциями собрать сам Lazarus - может поможете?
на старую ветку отсылать не буду - лень искать
чтобы это попытаться сделать надо в fpc.cfg добавить -CX -XX
дальше собирать lazarus как обычно (точнее из командной строки)
если не получается, то нехватает памяти, предположительно нужно от 512Mb-1024Mb
здесь есть люди у которых получилось, у меня нет
увличение свопа (файла подкачки) не факт, что поможет
а вот эффект говрят действительно ощутимый
---
Дополнительно добавлю - есть какие-то проблемы с гнушным линкером, поэтому сейчас ведется разработка внутреннего линкера для fpc, на днях об этом упоминалось в мейл-листе
пробовал сегодня перекомпилить со смарт линком лазарус.
У меня селерон1Ггц256Мб сделал ему своп нв 2Гига.
Пол дня он компилил виртуалки полтора гига сожрал, мне это надоело.
Надо оперативки поболее, эдак под гиг.
кстати не обязательно весь лазарус смарт линковать, можно просто зайли в директорию lcl и там выполнить make smart (ну и в компонентах,если нужны).
А потом свои уже со смарт линком компилить, но все равно 512мб не меньше надо
У меня селерон1Ггц256Мб сделал ему своп нв 2Гига.
Пол дня он компилил виртуалки полтора гига сожрал, мне это надоело.
Надо оперативки поболее, эдак под гиг.
кстати не обязательно весь лазарус смарт линковать, можно просто зайли в директорию lcl и там выполнить make smart (ну и в компонентах,если нужны).
А потом свои уже со смарт линком компилить, но все равно 512мб не меньше надо
-
Guest
-
SovNarKom
- постоялец
- Сообщения: 389
- Зарегистрирован: 28.05.2005 10:37:39
- Откуда: Воронеж [vrn] [36]
- Контактная информация:
Ребят, а зачем вообще сам лазарь со смартлинком собирать?
Например, если компилятору напрямую передать пути к LCL,
и включить -CX -Xs -XX, то все используемые модули будут пересобраны со смартлинком... и даже без стрипа прога весит меньше 1 Mb...
Вообще говоря, я буду счастлив, если БЕЗ фальшивого UPX-а, пустая LCL прога будет весить не более 400 Kb...
Например, если компилятору напрямую передать пути к LCL,
-FuC:\Lazarus0911\lcl\
-FuC:\Lazarus0911\lcl\interfaces\win32\
-FuC:\Lazarus0911\lcl\widgetset\
-FiC:\Lazarus0911\lcl\include\
и включить -CX -Xs -XX, то все используемые модули будут пересобраны со смартлинком... и даже без стрипа прога весит меньше 1 Mb...
Вообще говоря, я буду счастлив, если БЕЗ фальшивого UPX-а, пустая LCL прога будет весить не более 400 Kb...
