Странности с размерами exe

Вопросы программирования и использования среды Lazarus.

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

Ответить
Аватара пользователя
kotompazb
постоялец
Сообщения: 156
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Странности с размерами exe

Сообщение kotompazb »

Здрасьте.
И это снова я.
Вопрос наверное праздный ибо не такой уж важный. Но все ж интересно.
Итак. Суть. На основном аппарате соят окна ХР, Lazarus 1.4.4 Под этим, собственно и пишу. Готовый экзешник еще жму потом последним UPX.
Однако, время от времени приходится сидеть за другим аппаратом. Там окна 7 - 32-битные. Чтобы времени зря не терять поставил туда тот же дистрибутив Lazarus и перетащил на флэшке исходник. Но вот забавная штука. После всех тех же манипуляций (копиляция, сжатие UPX) получается exe немного, но все ж большего размера (1 275 392 байт против 1 267 200).
При этом перенес те же исходники назад, скомпилил, сжал - размер уменьшился.
Вот и стало интересно, это нормально, что Лазарус одинаковой версии выдает разного размера результат на аппаратах с разной осью.
(Хотя мб это UPX на разных системах жмет с разной степенью).
Хотя 8 кг сегодня не существенно. Но все же интересно.
Ism
энтузиаст
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Сообщение Ism »

В исходниках Лазаруса наверняка есть осезависимые куски, в итоге код может быть разным
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

kotompazb писал(а):это нормально, что Лазарус одинаковой версии выдает разного размера результат на аппаратах с разной осью


strip то к файлу применяли?
А то если в нем отладочная информация, то в ней ссылки на каталог с исходниками. Разные пути - разная длина строк, разный размер упакованного результата. То же касается "информации об исходниках", которая в .exe записана, и runtime-архиваторами, емнип, жмётся.
Алсо, может быть разный размер кластера на файловой системе, и что-то - либо линкер, либо упаковщик, выравнивает по его границам.
Аватара пользователя
kotompazb
постоялец
Сообщения: 156
Зарегистрирован: 21.06.2012 13:03:39
Откуда: Novosibirsk, xUSSR

Сообщение kotompazb »

SSerge писал(а):strip то к файлу применяли?

Ес-но. Хотя и говорят, что опция "вырезать отладочную информацию..." делает в точности то же, все равно на всякий случай strip.exe применяю. Завел себе батник когда-то и пользую его:

Код: Выделить всё

ECHO OFF
ECHO Начало упаковки %1
ECHO Обработка STRIP.EXE
PAUSE 0
STRIP.EXE --strip-all %1
ECHO Начало упаковки UPX.EXE
PAUSE 0
UPX.EXE -9 %1
ECHO Упаковка завершена
PAUSE 0

Ну, в общем, нормальный, я так понял, эффект.
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Нормальный-ненормальный хз, я один раз сталкивался с приложением собраным на 7x32 не запускающимся на XPx32 - "точка входа в четотам не найдена гдетотам" подробностей непомню, касалось стандартных dllок. этиже исходники собраные в XP запускались везде, дело было с транковым лазарем (одна и таже ревизия на обоих системах), как сейчас обстоят дела - незнаю.
Аватара пользователя
bormant
постоялец
Сообщения: 408
Зарегистрирован: 21.03.2012 11:26:01

Сообщение bormant »

kotompazb,
я б сказал вам про то, что использование UPX -- зело дурной тон, но вы и без меня, наверное, это знаете.
Есть ли хоть один плюс от upx, перевешивающий минусы от дублирования кода в памяти и необходимости сохранять распакованные секции exe-шника в свопе вместо перечитывания с диска из самих файлов?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kotompazb писал(а):Хотя и говорят, что опция "вырезать отладочную информацию..." делает в точности то же, все равно на всякий случай strip.exe

Пытался после вырезания, ну и еще кое-каких перенастроек воспользоваться strip.exe... вырезано было целых 0байт.
Ответить