Table des matières

Taille des Exe dans LAZARUS / Free Pascal

https://lazarus.developpez.com/faq/?page=Generalites#Comment-diminuer-la-taille-de-l-executable

Projet –> Options du compilateur :

Dans l'onglet Code, cocher les cases Table des liens intelligente et Code le plus petit ;

Dans l'onglet Édition des liens cocher uniquement Éliminer les symboles de l'exécutable (-Xs) et Lien intelligent (-XX). Décocher Générer les infos pour le débogueur ;

Dans l'onglet Faire des commentaires, décocher Insérer un logo FPC (-l).

Recompiler ensuite en allant dans Exécuter –> Construire tout.

Influence des Units dans la taille des Exe

Apparement les unités, même non utilisée, rajoute du poids aux exe

Exemple: Programme compilé avec le profil Release de base = 43008 octets

program testor;
 
begin
  Writeln('salut');
end.   

On rajoute sysutils = 109056 octets (+66048 oct)

program testor;
uses sysutils;
begin
  Writeln('salut');
end.   

Rôle des directives de compilation

Option du projet→Option du compilateur→Verbosité : Tout décocher / Tout coché = Aucun changement sur la taille

Conseils glanés sur http://wiki.freepascal.org/Lazarus_Faq/fr#Pourquoi_les_fichiers_binaires_produits_sont-ils_si_volumineux_.3F

1. Project|Compiler Options|Code|Smart Linkable (-CX) -> Coché
2. Project|Compiler Options|Linking|Debugging| Décocher tout sauf Strip Symbols From Executable (-Xs)
3. Project|Compiler Options|Linking|Link Style|Link Smart (-XX) -> Coché

Afficher les PPU utilisé

Dans le menu : Projet → Afficher les fichiers PPU utilisés.

On peut visualiser les unités utilisée, leur taille, qui les utilises etc…

Liens à etudier

https://www.developpez.net/forums/d160547/autres-langages/pascal/lazarus/diminuer-taille-executables/

Autres pistes

Voir la possibilité de supprimer certaine unités implicitement chargées par le compilateur.
Farfouiller dans les directives de compilation ou les Modes (Delphi, Pascal Object, TurboPascal)