Page 1 sur 1

Compilation dynamique. Optimisation du poids de l'executable

Publié : mer. 07/oct./2015 23:33
par jambon
Bonjour, voila j'ai un projet plutôt "gros", et souvent je doit générer mon executable.
Ceci dit parfois ma clientèle n'a pas besoin de toute les fonction du programme...


Je me suis dit qu'on pourrai éventuellement gagner de la place en taille en précisant à purebasic de compiler ou non certaine partie par exemple avec une condition du type

If compilation_code = 1
;MonCode
;MonCharbaia
;MesFonction et tutui fruiti
EndIF

Je sais qu'il à déja des constantes et que ces conditions sont réalisable, ceci dit la taille reste toujours la même. (aucun gain).

Je pourrai aussi copier ma source la modifier pour avoir une deuxième version de mon programme "light".
Mais je pense/suppose que peut être PureBasic possède des outils pour réaliser ceci de la manière dont je vous la présente. (ou similaire)

Re: Compilation dynamique. Optimisation du poids de l'execut

Publié : jeu. 08/oct./2015 0:24
par microdevweb
@Jambon,

Les commandes pour dirigé la compilation sont

Code : Tout sélectionner

CompilerIf  <expression constante>
  ...
[CompilerElseIf]
  ...
[CompilerElse]
  ...
CompilerEndIf

Mais dans le cas que tu expliques, je me demande si tu ne devrais pencher pour une programmation modulaire et utiliser des Dll (sous windows) ou So (sous Linux) que tu installe ou pas

Voir peu t’être le tuto de G-Rom
http://www.purebasic.fr/french/viewtopi ... 21&t=12960

Re: Compilation dynamique. Optimisation du poids de l'execut

Publié : jeu. 08/oct./2015 5:53
par Fred
Un 'CompilerIF' devrait resoudre ton probleme, car tout ce qui est dans le IF non compilé ne sera pas intégré dans l'executable final.

Re: Compilation dynamique. Optimisation du poids de l'execut

Publié : jeu. 08/oct./2015 8:49
par microdevweb
Voici un petit exemple, bon je l'avoue ce cas je ne vois aucune différence de taille mais dans le cas d'une application plus volumineuse cela devrais le faire

Code : Tout sélectionner

Enumeration 
      #Litle
      #Medium
      #Big
EndEnumeration   
Enumeration 
      #MainForm
EndEnumeration
#Licence=#Litle
Procedure OpenMainForm()
      OpenWindow(#MainForm,0,0,800,600,"Teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
      CompilerIf #Licence=#Litle
            TextGadget(0,0,0,800,30,"Txt 1")
      CompilerEndIf
      CompilerIf #Licence=#Medium
            TextGadget(0,0,0,800,30,"Txt 1")
            TextGadget(1,0,40,800,30,"Txt 2")
            TextGadget(2,0,80,800,30,"Txt 3")
      CompilerEndIf
      CompilerIf #Licence=#Big
            TextGadget(0,0,0,800,30,"Txt 1")
            TextGadget(1,0,40,800,30,"Txt 2")
            TextGadget(2,0,80,800,30,"Txt 3")
            TextGadget(3,0,120,800,30,"Txt 1")
            TextGadget(4,0,160,800,30,"Txt 2")
            TextGadget(5,0,200,800,30,"Txt 3")
      CompilerEndIf
EndProcedure
OpenMainForm()
Repeat
      Event=WaitWindowEvent()
Until Event=#PB_Event_CloseWindow


Re: Compilation dynamique. Optimisation du poids de l'execut

Publié : jeu. 08/oct./2015 11:43
par jambon
Effectivement CompilerIF fonctionne à merveille ;)
Merci :)