Bonjour à tous,

Je reviens vers vous pour un souci "d'obésité compilatoire".
En effet j'utilise plein de modules dans mon code, certains que j'utilise (en passant par uses), d'autres non, en fonction des programmes que je construis.
Je me suis aperçu que, à l'inverse de ce que j'avais compris dans certains messages sur le forum, que le compilateur ne fait pas de base le ménage des modules non utilisés.

Par exemple en laissant traîner quelques modules :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
(* Insertion des librairies MADLib Communes
* -----------------------------------------
*)
 
    MadLib_xml in CHEMIN_MADLIB + '/commun/madlib_xml.pas',
    MadLib_ini in CHEMIN_MADLIB + '/commun/madlib_ini.pas',
    MadLib_FileSystem in CHEMIN_MADLIB + '/commun/madlib_filesystem.pas',
    MadLib_CmdLine in CHEMIN_MADLIB + '/commun/madlib_cmdline.pas',
    MadLib_SystemEnvironment in CHEMIN_MADLIB + '/commun/madlib_systemenvironment.pas',
    MadLib_String in CHEMIN_MADLIB + '/commun/madlib_string.pas',
    MadLib_Numeric in CHEMIN_MADLIB + '/commun/madlib_numeric.pas',
    MadLib_Convert in CHEMIN_MADLIB + '/commun/madlib_convert.pas',
    MadLib_TinyLog in CHEMIN_MADLIB + '/commun/madlib_tinylog.pas',    
 
    (* MadLib_dhcpd in CHEMIN_MADLIB + '/linux/madlib_dhcpd.pas', *)
 
    (* En fonction de la plate-forme de compilation insertion des UNITES LIBRAIRIE MODULE spécifiques
    * -----------------------------------------
    *)
 
    {$IFDEF linux}
                MadLib_dhcpd in CHEMIN_MADLIB + '/linux/madlib_dhcpd.pas',
                MadLib_dnsmasq in CHEMIN_MADLIB + '/linux/madlib_dnsmasq.pas',
 
    {$ENDIF}
l’exécutable fait : 1.2Mo

En supprimant un module (XML) que je n'utilise pas dans mon code (c'est-à-dire pas de déclaration via USES), l’exécutable fait lui 800Ko.

Bien sûr, me direz-vous, il faut enlever ce que l'on n'utilise pas, mais dans mon cas le fichier qui est utilisé est un "include" standardisé. Il n'est pas propre au programme compilé mais propre à un ensemble de sources qui utilisent les mêmes références.
Il n'est donc pas possible de modifier ce fichier et il faut que je l'utilise puisque c'est le montage commun des modules d'un projet.

Je me suis donc orienté vers l'optimisation avec FPC, dans le but de supprimer les modules qui ne sont pas "uses", car m'avait-on dit, que cela s'effectuait automatiquement. M'aurait-on menti ??

Malheureusement, je ne pense pas avoir essayé les bons commutateurs, car l’exécutable fait toujours le même poids.

Connaissez-vous donc les commutateurs qui indiquent à FPC de supprimer, par exemple, les unités non utilisées ?

Merci d'avance de vos réponses.
[MAD]