Ogromny plik wynikowy w FPC 2.4.2 w porównaniu z Delphi 7.

0

Witam.

Pytanie do tych którzy używali lub używają kompilatora FPC. Skompilowalem pod wersją 2.4.2 dla Win32 bibliotekę, której kod jest pod adresem: http://olesio.eu/xmp_mmkeys.zip, bez spakowanie UPX'em dllka skompilowana w Delphi 7 zajmuje 15 360 bajtów, ta sama dllka skompilowana pod FPC 2.4.2 z dyrektywami:

{$mode delphi}{$H+}
{$D-,L-,O+,Q-,R-,Y-,S-}

zajmuje prawie cztery [!] razy tyle, bo 65 651 bajtów. I tutaj pytanie czy to normalne, czy można jakoś ustawić kompilator. Zainstalowałem FPC na próbę, bo podejrzewałem, że będzie on generowal mniejsze pliki wynikowe od Delphi 7. Gdzie i co można jeszcze ustawić aby zmniejszyć dllkę. Przykłądowe kody dołaczone do FPC też są strasznie wielkie. Czyli co olać FPC i nie kombinowac tylko pisać pod Delphi 7 nadal? Bo taki wniosek się nasuwa :) I wiem, że przy dysku 1 TB jaki mam 65 kb to nic, ale wolał bym zgrabniejszy dll.

0

http://hiew.ru i sprawdź co tam Ci FPC wrzucił do środka, zamiast switcha $D- spróbuj dac kompilatorowi w linii komend opcje żeby nie generował debug info

0

W katalogu FPC masz plik strip
Użyj go :
STRIP.EXE TwójProgram.exe
Zobaczysz o ile zmniejszy się twój program.

0

Co ciekawe po skompillowaniu z poza IDE ze standardowymi konfiguracjami jakie tworzy instalator, czyli wywołując na przykład z pliku bat:

@C:\FPC\bin\i386-win32\fpc xmp_mmkeys.pp
@ren xmp_mmkeys.dll xmp-mmkeys.dll

uzyskuje plik o rozmiarze 34352 bajty, a po użyciu strip.exe jest on nieco większy. Jak zmusić IDE aby kompilowało pliki tak, jak robi to wywołany sam kompilator. Jak kazać wczytywać fpc.cfg. Patrzylem pobieżnie w opcjach, ale nie widze. A i nie ogarniam tych przełączników linii poleceń, wszystkie używają chyba opcji do dołączenia debugu jeśli dobrze wywnioskowałem z helpa. Teraz pytanie, czy da się jeszcze mniejszy plik dll stworzyć? I widze, że bart tutaj zaglądasz, ale ja już wiesz sam z IRC'a, że dawno nie modziłem nic pod debuggerami, jak już to rzadko i słabo sobie radzę i nie wiem na co zwrócić uwagę patrząć pod HIEW'em. Po prostu bawię się FPC licząc na to, że uda się mi zmusić go do wygenerowania nieco mniejszego dll'a niż pod Delphi 7 Personal i to wszystko jeszcze przed spakowaniem UPX'em.

0

Kompiluj z parametrem -dRELEASE

0

Dziękuje wszystkim za dotychczasowe odpowiedzi, dałem tak w *.bat:

@C:\FPC\bin\i386-win32\fpc -dRELEASE xmp_mmkeys.pp
@ren xmp_mmkeys.dll xmp-mmkeys.dll

Jednak pomimio tego dll wynikowy nadal ma 34352 bajtów. Macie jeszcze jakieś pomysły, czy po prostu już nie da się nic wycisnąć z FPC, bo Delphi 7 było pisane o wiele wcześniej niż FPC w wersji 2.4.2 i dlatego moduły zajmują mniej, przez co i skompilowany plik wynikowy również jest mniejszy?

1 użytkowników online, w tym zalogowanych: 0, gości: 1