![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
|
При попытке скомпилировать программу (любую) с Runtime Package (для начала со всеми) среда разработки компилирует exe-шник вообще без вложения библиотек. Соответственно, мои программы не работаеют на других компьютерах.
В режиме Design Package компиляция проходит с полным пакетом, и программы получаются работоспособные. Но мне не это нужно, exe-шники слишком много весят, хотел бы вырезать неиспользуемые библиотеки. Попытки переустановить Delphi ни к чему не привели. Подскажите, где косяк? Как это можно вылечить? Их сторонних компонентов стоят TMS Pack, EhLib, RxLib, DevExpress. Попробовал на другой машине, такая же фигня ![]() Где-то это настройками лечится. Подскажите пожалуйста, кто знает. Последний раз редактировалось Terio; 08.02.2008 в 17:06.. |
|
|
|
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 31.07.2007
Сообщений: 5
Репутация: 1
|
1. Runtime Package - это специализированная dll (с расширением bpl), которая при запуске программы загружается в память и используется при работе программы.
2. При компиляции программы с использованием Runtime Package необходимо вместе с exe нести на другую машину и весь набор bpl. 3. Эффективность использования Runtime Package будет наблюдаться ТОЛЬКО при наличие нескольких программ, их использующих, т.к. комплект exe + bpl будут практически всегда занимать больше места, чем exe, скомпилированный без использования Runtime Package. Это происходит их-за того, что bpl содержит все классы, методы, формы и т.д., а в exe включаются только реально вызываемые. |
|
|
|
| Сказали спасибо: |
|
|
#3
|
|
Новичок
Пол:
Регистрация: 29.06.2005
Адрес: Одесса
Сообщений: 8
Репутация: -2
|
Спасибо за лаконичный ответ. Т.е. реально в объеме получается меньше чем с библиотеками.
|
|
|
|
|
|
#4
|
|
Неактивный пользователь
Пол:
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
|
А есть возможность инсталлировать пакет с включением в exe-шник только используемых библиотек?
Создаю пустую форму, компилирую. exe-шник весит 695кб - это же не нормально? Точно знаю, что тут используется только vcl, и реально такая программа должна весить около 40кб. Последний раз редактировалось Terio; 14.02.2008 в 10:23.. |
|
|
|
|
|
#5
|
|
Неактивный пользователь
Регистрация: 14.02.2008
Сообщений: 2
Репутация: 1
|
Ну 40 килобайт для пустой формы я даже в Делфи 3 не видел, а 695 для 2007 вполне нормально.
Но уменьшить можно - поудалять из секции uses неиспользуемые юниты. Кстати, Debug Information отключена? |
|
|
|
|
|
#6
|
|
Неактивный пользователь
Пол:
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
|
Отключена. А секция uses находится на свойствах проекта или общих свойствах Дельфи? Я тут нашел Tweaker, он позволяет отключать пакеты еще до запуска дельфи. Получается, компиляция проходит в режиме Design Package, но только с теми юнитами, которые оставил в Tweakere. Другого способа я пока не нашел ![]() |
|
|
|
|
|
#7
|
|
Неактивный пользователь
Пол:
Регистрация: 31.07.2007
Сообщений: 5
Репутация: 1
|
Простой пример.
Библиотека vcl100.bpl имеет размер 1874944 байта Простейшая программа из 1 формы и кнопки (с почищенным uses) получается 412672 Эта же программа с использованием vcl100 получается 19456 байт (exe) + 1874944 байта (vcl100.bpl) = 1894400 байт Использование RinTime Package имеет еще один "подводный камень": при изменении версии библиотеки (например, при обновлении Delphi) может потребоваться перекомпиляция всех программ. |
|
|
|
|
|
#8
|
|||||||||||||||||||||||
это первая (вторая) строка в pas файлах. этой строкой подключаются используемые библиотеки
__________________
THE TRUTH IS OUT THERE |
||||||||||||||||||||||||
|
|
|
|
|
#9
|
|
Новичок
Пол:
Регистрация: 14.08.2007
Сообщений: 13
Репутация: 0
|
Если сильно приспичит то можно и очень маленькие программы писать на чистом API (>8Kb), или используя некоторые библиотеки (напр. KOL) оставаться в объектной модели (>40-50Kb). Но всё это баловство и оправдано только для очень маленьких прог или DLL-ок. Поверь моему обльшому опыту что не стоит заморачиваться с этим. Пиши как есть - реально разница 500кб программа или 3мб - нет! Не те времена. К тому же есть и другие подводные камни - долго рассказывать. Так шо пиши в среде, на размер забей, а в конце если хочешь пожми EXE-шник UPX-ом с параметром --best Он тебе в два и даже больше раз уменьшит размер
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Delphi 2007 | koba | Delphi | 106 | 18.04.2013 13:00 |
| Delphi 2007 | Litvinenko_A | Delphi | 2 | 23.09.2008 18:00 |
| Delphi 2007+ MS SQL Server 2007 | Litvinenko_A | Базы данных | 1 | 19.06.2008 13:05 |
| Delphi 2007 | rar | Варезник | 6 | 26.12.2007 17:38 |
| Delphi 2007 for PHP | fxmike | Варезник | 0 | 06.04.2007 12:30 |
|
|