====== 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...\\
{{:prog:lazarus:compilateur:ppu1.png|}}
===== 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)