Как бороться с большим размером программы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как бороться с большим размером программы

Сообщение Himik » 12.10.2007 20:33:46

Всем добрый день!
Сразу прошу прощения, что задаю, видимо, банальный вопрос. Я сам программист на Delphi, и Free Pascal решил использовать для разработки проекта для КПК. Посему с миром Open Source раньше никогда не сталкивался :( .
Проблема довольно проста. При сборке минимального оконного приложения в Lazarus для WinCE (впрочем, как и для Win32) получаются EXE-файлы неимоверных размеров - 4, 8 Мб. Просматривая информацию в сети, я не раз натыкался на обсуждение этого вопроса, однако как правило все ограничивается упоминанием магической опции Smart Link компилятора. Хотелось бы прочитать подробную пошаговую инструкцию о том:
1) какие исходники качать;
2) как пересобрать компилятор (если нужно), чтобы исключить "утягивание" лишнего кода.
Буду очень благодарен за любые советы по указанному выше поводу.
Аватара пользователя
Himik
незнакомец
 
Сообщения: 6
Зарегистрирован: 12.10.2007 20:18:42

Сообщение GrayEddy » 12.10.2007 20:55:48

Интересно, какие размеры исполняемых файлов для КПК считаются приемлемыми? Максимальный потолок было бы неплохо указать.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение Himik » 12.10.2007 21:30:14

Пусть, для начала, таковым будет средний размер оконного приложения, создаваемого Delphi без использования сторонних тяжелых компонентов (типа Developer Express) - около 1,5 Мб. Во всяком случае, больший размер файла для КПК вряд ли приемлим - в условиях ограниченного размера ОЗУ и при том, что может быть запущено ещё несколько программ, за этот лимит выходить вряд ли стоит.
Аватара пользователя
Himik
незнакомец
 
Сообщения: 6
Зарегистрирован: 12.10.2007 20:18:42

Сообщение Attid » 12.10.2007 23:33:43

FAQ прочитано ?
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2586
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Himik » 13.10.2007 09:44:05

FAQ то прочитан, однако "некоторого понимания структуры исходников FPC и принципов его работы", к сожалению, нет, а именно его и хотелось бы приобрести. Кроме того, в FAQ не написано, как пересобрать компилятор, заставив его везде, где это возможно, использовать Smart Link (что необходимо сделать? Внести изменения в файл fpc.cfg, а затем выполнить make all? или нужно сделать что-то ещё?).
И ещё... Не совсем понятно, почему у Free Pascal такая тяга к бинарным модулям (*.o и *.ppu). Скажем, в Delphi почти всем модули лежат в виде исходных текстов, а не скомпилированных заранее модулей. Почему того же самого нельзя сделать в FPC?
Аватара пользователя
Himik
незнакомец
 
Сообщения: 6
Зарегистрирован: 12.10.2007 20:18:42

Сообщение shade » 13.10.2007 11:38:37

Himik писал(а):И ещё... Не совсем понятно, почему у Free Pascal такая тяга к бинарным модулям (*.o и *.ppu). Скажем, в Delphi почти всем модули лежат в виде исходных текстов, а не скомпилированных заранее модулей. Почему того же самого нельзя сделать в FPC?

Тут вы ошибаетсь. В Delphi так же скомпилированные юниты и исходники лежат порознь... более того, правка исходников не приводит к их автоматической перекомпиляции и в этом нет ничего плохого... По крайней в Dephi 6 дело обстоит именно так.

Himik писал(а):роме того, в FAQ не написано, как пересобрать компилятор, заставив его везде, где это возможно, использовать Smart Link (что необходимо сделать? Внести изменения в файл fpc.cfg, а затем выполнить make all? или нужно сделать что-то ещё?).

Хм, так вроде для этого не надо пересобирать компилятор (тем более если у вас официальный релиз скомпилированного пакета), но вот убедиться что в fpc.cfg прописанна соответствующая опция не помешает. Помоему он и так всегда поддерживает Smart Link, и вроде даже RTL и прочие пакеты FPC компилируются со смарт линком... Большой объем это вина не столько FPC, сколько лазаря... Вот с помощью KOL вроде как можно писать маленькие (по размеру исполняемого файла) программки, была где-то даже тема на форуме...
Аватара пользователя
shade
энтузиаст
 
Сообщения: 879
Зарегистрирован: 21.02.2006 20:15:48
Откуда: http://shamangrad.net/

Сообщение Alexander » 13.10.2007 11:54:39

Все РЕЛИЗЫ ФПК имеют смартлинк уже включенным.
Тогда make all и make install достаточно.

Himik писал(а):И ещё... Не совсем понятно, почему у Free Pascal такая тяга к бинарным модулям (*.o и *.ppu). Скажем, в Delphi почти всем модули лежат в виде исходных текстов, а не скомпилированных заранее модулей. Почему того же самого нельзя сделать в FPC?


Сказанное - несерьёзно. RTFM, /dev/head. Например про раздельную
компиляцию. Delphi в этом ничем особенно не отличается.
И у него вообще исходники ЗАКРЫТЫЕ !

некоторого понимания структуры исходников FPC и принципов его работы


Структура большая но самоочевидная из названия папок.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Сообщение v-t-l » 13.10.2007 13:00:54

В Лазарусе меню Проект - Опции компилятора. На вкладке "Связывание" отключить опцию "Выдать номера строк в ошибках времени исполнения (-gl)".
v-t-l
энтузиаст
 
Сообщения: 740
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение SovNarKom » 13.10.2007 15:26:57

Химик,
Статью мою прочти для начала, у меня всё руки не доходят поправить её к сожлению, но в основном всё там правильно описано.
SovNarKom
постоялец
 
Сообщения: 389
Зарегистрирован: 28.05.2005 10:37:39
Откуда: Воронеж [vrn] [36]

Сообщение Максим » 13.10.2007 19:22:51

Неплохо бы, задавая такие вопросы, указывать для начала версии FPC и Lazarus. Например, в FPC 2.2 линкер уже встроенный, и смартлинк включён по умолчанию.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Himik » 13.10.2007 20:03:58

SovNarKom писал(а):Химик,
Статью мою прочти для начала, у меня всё руки не доходят поправить её к сожлению, но в основном всё там правильно описано.


Коию? Ссылку можно?

Максим писал(а):Неплохо бы, задавая такие вопросы, указывать для начала версии FPC и Lazarus. Например, в FPC 2.2 линкер уже встроенный, и смартлинк включён по умолчанию.


FPC 2.2.0
Lazarus 0.9.22
Аватара пользователя
Himik
незнакомец
 
Сообщения: 6
Зарегистрирован: 12.10.2007 20:18:42

Сообщение ev » 13.10.2007 20:13:13

Коию? Ссылку можно?

в верху белые буквы на синем фоне - это меню :lol:
там выбираем статьи
и дальше смотрим ;) даже искать не надо - она одна из последних
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Inspector » 13.10.2007 20:39:52

Господа! Да нельзя же так вести себя. А то, знаете ли, создается впечатление неполноценности комментаторов. Вас человек спросил про вполне конкретную вещь. А вы что - сразу отсылать к своим святым писаниям. Извините, но уж лучше смолчать, чем выказывать свое пренебрежительное отношение к таки акстившимся программистам. Надо же все-таки уважать других, ибо они тоже мастера в своем деле.
Inspector
незнакомец
 
Сообщения: 4
Зарегистрирован: 13.10.2007 20:17:22

Сообщение ev » 13.10.2007 20:49:41

хм... так вроде вполне конкретно и ответили... плюс аж две ссылки на возможно полезный материал
что не так? ;)

если есть еще решения - думаю все с радостью выслушают
ну и занесем в faq :)
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Alexander » 13.10.2007 21:07:43

Inspector писал(а):Господа! Да нельзя же так вести себя. А то, знаете ли, создается впечатление неполноценности комментаторов. Вас человек спросил про вполне конкретную вещь. А вы что - сразу отсылать к своим святым писаниям. Извините, но уж лучше смолчать, чем выказывать свое пренебрежительное отношение к таки акстившимся программистам. Надо же все-таки уважать других, ибо они тоже мастера в своем деле.


Ты не прав !

Himik писал(а):Я сам программист на Delphi, и Free Pascal решил использовать для разработки проекта для КПК.


И при этом не знать, что Делфи ЗАКРЫТАЯ ! И что бинарники есть
и у неё тоже (собственно только они и есть, исходники там от beta-
версий и то не все). Надо уж тогда писать "я только начинаю
программировать", а не пинать ФПК, как он хуже Делфи.

Inspector писал(а):А вы что - сразу отсылать к своим святым писаниям.


А не читать их - не уважать писавших. Зря что ли писалось ?
Или кому то лень прочитать, а всем на одни и те же вопросы
отвечать. Программирование дело тяжёлое. На эти вопросы
можно было найти исчерпывающую инфу просто внимательно
пробежавшись по форуму - там и поиск есть.

На вопрос о смартлинке я ответил - бери релиз !

Просто человек совсем расслабился.

Основной принцип свободного ПО: хочешь чтобы тебе помогли - помогут,
хочешь чтобы сделали за тебя - пошлют.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 823
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru