Нашел в сети программку StripReloc (http://www.jrsoftware.org/striprlc.php), которая удаляет из exe — файлов, генерируемых Delphi или Builder секцию .reloc, за счет чего можно уменьшить размер файла.
Вот что говорит сам автор проги:
StripReloc is a free (GPL license) command line utility that removes the relocation (".reloc") section from Win32 PE EXE files, reducing their size. Most compilers/linkers (including Delphi) put a relocation section in EXE files, but this is actually not necessary since EXEs never get relocated. Hence, a relocation section only wastes space.
Кто-нибудь пользовался такой программкой? Может где-то страшные грабли лежат? И стоит ли пробовать?
Здравствуйте, Владик, Вы писали:
В>Стоит попробовать использовать более правильный линкер: здесь
Во-первых, я задавал вопрос не про линкер, а про утилиту
Во-вторых, если Вы считаете что beta версия по вашей ссылке — это правильный линкер, то мне такое не подходит. Правильный линкер для меня — тот который идет в комплекте с пакетом разработки, иначе какая уверенность что ЭТО будет работать?
Здравствуйте, BiAlix, Вы писали:
BA>Во-первых, я задавал вопрос не про линкер, а про утилиту
Дык, для него эта утилита не нужна. A exe он делает меньге (по моему опыту 4Мб мы 5Мб).
BA>Во-вторых, если Вы считаете что beta версия по вашей ссылке — это правильный линкер, то мне такое не подходит. Правильный линкер для меня — тот который идет в комплекте с пакетом разработки, иначе какая уверенность что ЭТО будет работать?
Тот, который идет вместе с пакетом, отказался собирать проект после того, как он стал достаточно большим. В отличие от.
P.S. У указанного линкера есть проблемы с дебаг инфой (при отладке не все объекты достцпны для просмотра) при отладке из IDE. Но для релизной версии exe (ведь мы ради нее боремся с размером?) это не имеет значения.
Здравствуйте, Владик, Вы писали:
В>Тот, который идет вместе с пакетом, отказался собирать проект после того, как он стал достаточно большим. В отличие от.
Про какой конкретно пакет Вы говорите? Я работаю с BCB4. C такой проблемой не сталкивался, равно как и не творил до этого такие огромные программы. К тому же иногда проще написать пару DLL. А забота уменьшения экзешника волнует, поскольку некоторые мои программы скачивают люди через интернет (и не у всех выделенный канал).
Здравствуйте, BiAlix, Вы писали:
В>>Тот, который идет вместе с пакетом, отказался собирать проект после того, как он стал достаточно большим. В отличие от. BA>Про какой конкретно пакет Вы говорите?
BCB5. В 6-м тоже не все гладко.
BA>Я работаю с BCB4. C такой проблемой не сталкивался, равно как и не творил до этого такие огромные программы. К тому же иногда проще написать пару DLL.
Угу, и не я один этот проект разрабатываю Разделение на отдельные модули вне моей компетенции (да я бы и не сказал, что это было бы совсем просто).
BA>А забота уменьшения экзешника волнует, поскольку некоторые мои программы скачивают люди через интернет (и не у всех выделенный канал).
Тогда я мог бы порекомендовать вообще сменить средство разработки, но Вы, наверное, отреагируете на такой совет еще более резко
P.S. Возвращаясь к альтернативному линкеру. Все что требуется, это заменить в make-файле ilink32 на ulink. Это несложно, а выигрыш в размере, скорее всего, окажется намного более существенным, чем в случае сабжевой утилиты. Если будет глючить — написать автору, он будет только благодарен за найденный баг.