Créer EXE en codant

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Créer EXE en codant

Message 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
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Créer EXE en codant

Message 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.






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
microdevweb
Messages : 1802
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Créer EXE en codant

Message 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
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Créer EXE en codant

Message 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
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Créer EXE en codant

Message 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?
Win7 (x64) 64 bits Pb 5.72
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Créer EXE en codant

Message 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.

:wink:
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Créer EXE en codant

Message 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.
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Créer EXE en codant

Message 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.

:wink:
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Créer EXE en codant

Message par cage »

C'est possible ?

Peux-tu me dire comment je dois faire.

Merci
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: Créer EXE en codant

Message 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

:wink:
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Créer EXE en codant

Message 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
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Répondre