Page 1 sur 1
Créer EXE en codant
Publié : sam. 16/avr./2016 21:27
par omega
Bonsoir,
Est-il possible de créer un exécutable (pb) sans passer par le menu de l'EDI? (c'est à dire en codant)
Merci
Re: Créer EXE en codant
Publié : sam. 16/avr./2016 21:34
par venom
Bonsoir,
En ligne de commande tu veux ? Si c'est sa tu peut en effet via le "pbcompiler.exe" dans le dossier de purebasic.
@++
Re: Créer EXE en codant
Publié : sam. 16/avr./2016 21:41
par microdevweb
Tu peux créé un fichier Pb par exemple dynamiquement, ensuite tu peux lancer le compilateur en ligne de commande.
https://www.purebasic.com/french/docume ... piler.html
Re: Créer EXE en codant
Publié : sam. 16/avr./2016 22:25
par cage
Bonjour,
J'avais posé le même type de question il y a quelques temps.
http://www.purebasic.fr/french/viewtopi ... =1&t=15670
La réponse s'y trouve certainement.
Gérard
Re: Créer EXE en codant
Publié : mar. 19/avr./2016 22:47
par omega
@Cage, j'ai vu ton post à ce sujet :
Code : Tout sélectionner
Monprog$="prog.pb"
Purebasic$="c:\program files\purebasic.exe"
RunProgram (Purebasic$, "/build " + Monprog$, #Null$, #PB_Program_Wait)
Est ce correct?
Re: Créer EXE en codant
Publié : mer. 20/avr./2016 8:58
par Marc56
(venom et microdevweb ont donné la bonne réponse.)
C:\Program Files\PureBasic\
purebasic.exe
C'est l'
IDE de PB. Tu peux le lancer en batch, mais ça n'est utile que pour un
projet
http://www.purebasic.com/french/documen ... dline.html
Pour compiler un seul EXE, utilise le compilateur en ligne de commande
C:\Program Files\PureBasic\Compilers\
pbcompiler.exe
http://www.purebasic.com/french/documen ... piler.html
Note que pour qu'une application cliente génère un EXE PB, il faudrait que ton utilisateur dispose déjà de PB installé (licence)
De plus, un EXE qui génère un EXE est souvent considéré comme une menace par tout anti-virus.

Re: Créer EXE en codant
Publié : mer. 20/avr./2016 10:31
par cage
@omega
J'utilise toujours des fichiers *.pbp pour mes applications.
Pourquoi:
Plus facile pour compiler en 32 et 64-bit en mode batch
Toutes les informations importantes de l'exe sont dans les fichiers *.pbp
J'ai donc 2 fichiers *.pbp par application.
Exemple pour mon projet YHLE
yhle32.pbp et yhle64.pbp
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.purebasic.com/namespace" version="1.0" creator="PureBasic 5.42 LTS (Windows - x64)">
<section name="config">
<options closefiles="0" openmode="1" name="YHLE Project (x64)"/>
</section>
<section name="data">
<explorer view="..\..\Program Files\PureBasic\Examples\" pattern="0"/>
<log show="1"/>
<lastopen date="2016-03-14 14:43" user="gg" host="EBCAGE"/>
</section>
<section name="files">
<file name="..\pb-include.pbi">
<config load="0" scan="1" panel="1" warn="1" lastopen="1" panelstate="++"/>
<fingerprint md5="7a8335574e899ec04581ee2f5ed096ee"/>
</file>
<file name="..\pb-version.pbi">
<config load="1" scan="1" panel="1" warn="1" lastopen="1" panelstate="++"/>
<fingerprint md5="beb37972895b303fbce7415935520a8f"/>
</file>
<file name="yhle.pb">
<config load="0" scan="1" panel="1" warn="1" lastopen="1" panelstate="+"/>
<fingerprint md5="b888be68ca62df7e8cb4f0e24593d49f"/>
</file>
</section>
<section name="targets">
<target name="Default Target" enabled="1" default="1">
<inputfile value="yhle.pb"/>
<outputfile value="yhle64.exe"/>
<compiler version="PureBasic 5.42 LTS (Windows - x64)"/>
<executable value="yhle32.exe"/>
<options unicode="1" thread="1" xpskin="1" debug="1"/>
<purifier enable="1"/>
<temporaryexe value="source"/>
<icon enable="1">yhle.ico</icon>
<versioninfo enable="1">
<field0 value="16,04,0,19"/>
<field1 value="16,04,0,19"/>
<field2 value="CAGE"/>
<field3 value="YHLE"/>
<field4 value="16.04.19"/>
<field5 value="16.04.19"/>
<field6 value="YHLE - Network ToolBox"/>
<field7 value="yhle.exe"/>
<field8 value="yhle.exe"/>
<field9 value="© CAGE"/>
<field10 value="This software is the property of the author : CAGE"/>
<field11 value="0"/>
<field12 value="0"/>
</versioninfo>
</target>
</section>
</project>
Pour moi, cette solution ne présente que des avantages.
Toutes les sources PB disponibles sur mon site utilisent cette méthode.
Mais a chacun sa façon de faire.
Si cela peut t'aider.
Re: Créer EXE en codant
Publié : mer. 20/avr./2016 12:22
par Marc56
cage a écrit :
Plus facile pour compiler en 32 et 64-bit en mode batch
Toutes les informations importantes de l'exe sont dans les fichiers *.pbp
J'ai donc 2 fichiers *.pbp par application.
Pourquoi ne mets-tu pas tes versions 32 et 64 dans le même .pbp ?
Cela te permet de compiler les deux cibles en une seule passe.

Re: Créer EXE en codant
Publié : mer. 20/avr./2016 12:26
par cage
C'est possible ?
Peux-tu me dire comment je dois faire.
Merci
Re: Créer EXE en codant
Publié : mer. 20/avr./2016 12:39
par Marc56
cage a écrit :C'est possible ?
Peux-tu me dire comment je dois faire.
Dans ton projet (ouvert dans l'IDE):
- Tu cliques sur l'onglet
Projet
- Tu cliques sur
options du compilateur
- Tu cliques l'icône 1
ajouter une cible
- Tu remplis les options de la nouvelle cible
Si ta cible est sensiblement identiques (ex: version x86 et x64)
- Tu fais juste
copier la cible (icône 2)
- Tu changes simplement pour chaque cible, le
nom de l'exe et le
compilateur à utiliser.
- Tu peux changer d'autres paramètres (icônes, infos de version)
Si tu veux compiler dans l'IDE pour tester, tu vas dans le menu
Compilateur, puis dernière option
Compiler toutes les cibles.
Tu auras les messages d'info pour chaque cible
Dans ce même menu, l'option cible par défaut indique quelle cible est générée lorsque tu presses F5

Re: Créer EXE en codant
Publié : mer. 20/avr./2016 18:55
par cage
@Marc56: Cool
Tu viens de m'ouvrir des horizons dans ma façon de procéder.
Deux répertoires (x86 et x64) et un seul fichier pbp
Et cela fonctionne parfaitement.
Les 2 versions (32/64) d'un même exe (yhle.exe) se compilent dans leur répertoire respectif.
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.purebasic.com/namespace" version="1.0" creator="PureBasic 5.42 LTS (Windows - x64)">
<section name="config">
<options closefiles="0" openmode="1" name="YHLE Project (x64)"/>
</section>
<section name="data">
<explorer view="..\..\Program Files\PureBasic\Examples\" pattern="0"/>
<log show="1"/>
<lastopen date="2016-04-20 20:34" user="gg" host="EBCAGE"/>
</section>
<section name="files">
<file name="..\pb-include.pbi">
<config load="0" scan="1" panel="1" warn="1" lastopen="1" panelstate="++"/>
<fingerprint md5="7a8335574e899ec04581ee2f5ed096ee"/>
</file>
<file name="..\pb-version.pbi">
<config load="1" scan="1" panel="1" warn="1" lastopen="1" panelstate="++"/>
<fingerprint md5="e48085aaedeccc7bf770d35c1767566b"/>
</file>
<file name="yhle.pb">
<config load="0" scan="1" panel="1" warn="1" lastopen="1" panelstate="+"/>
<fingerprint md5="b888be68ca62df7e8cb4f0e24593d49f"/>
</file>
</section>
<section name="targets">
<target name="Default Target (x64)" enabled="1" default="1">
<inputfile value="yhle.pb"/>
<outputfile value="x64\yhle.exe"/>
<compiler version="PureBasic 5.42 LTS (Windows - x64)"/>
<executable value="x64\yhle.exe"/>
<options unicode="1" thread="1" xpskin="1" debug="1"/>
<purifier enable="1"/>
<temporaryexe value="source"/>
<icon enable="1">yhle2.ico</icon>
<versioninfo enable="1">
<field0 value="16,04,0,20"/>
<field1 value="16,04,0,20"/>
<field2 value="CAGE"/>
<field3 value="YHLE"/>
<field4 value="16.04.20"/>
<field5 value="16.04.20"/>
<field6 value="YHLE - Network ToolBox"/>
<field7 value="yhle.exe"/>
<field8 value="yhle.exe"/>
<field9 value="© CAGE"/>
<field10 value="This software is the property of the author : CAGE"/>
<field11 value="0"/>
<field12 value="0"/>
</versioninfo>
</target>
<target name="Default Target (x86)" enabled="1" default="0">
<inputfile value="yhle.pb"/>
<outputfile value="x86\yhle.exe"/>
<compiler version="PureBasic 5.42 LTS (Windows - x86)"/>
<executable value="x86\yhle.exe"/>
<options unicode="1" thread="1" xpskin="1" debug="1"/>
<purifier enable="1"/>
<temporaryexe value="source"/>
<icon enable="1">yhle2.ico</icon>
<versioninfo enable="1">
<field0 value="16,04,0,20"/>
<field1 value="16,04,0,20"/>
<field2 value="CAGE"/>
<field3 value="YHLE"/>
<field4 value="16.04.20"/>
<field5 value="16.04.20"/>
<field6 value="YHLE - Network ToolBox"/>
<field7 value="yhle.exe"/>
<field8 value="yhle.exe"/>
<field9 value="© CAGE"/>
<field10 value="This software is the property of the author : CAGE"/>
<field11 value="0"/>
<field12 value="0"/>
</versioninfo>
</target>
</section>
</project>
Et quand je compile toutes les cibles
Code : Tout sélectionner
--------------------------------------------------------------------------------
Building 'Default Target (x64)'...
--------------------------------------------------------------------------------
Including: ..\pb-version.pbi
Including: ..\pb-include.pbi
2234 lines compiled.
Creating executable file...
Compilation successful.
--------------------------------------------------------------------------------
Building 'Default Target (x86)'...
--------------------------------------------------------------------------------
Using compiler: PureBasic 5.42 LTS (Windows - x86)
Including: ..\pb-version.pbi
Including: ..\pb-include.pbi
2234 lines compiled.
Creating executable file...
Compilation successful.
--------------------------------------------------------------------------------
2 targets compiled successfully.
Je viens encore (a mon niveau) de faire un grand pas avec PB.
Encore merci.
Gérard
Re: Créer EXE en codant
Publié : sam. 23/avr./2016 9:39
par Ollivier