Compilation

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Jeff
Messages : 72
Inscription : sam. 13/mai/2006 18:09

Compilation

Message par Jeff »

bonjour la communauté :D

Dans l'aide de PB je n'ai pas vu de ligne pour lancer la compilation d'un fichier *.pb par un programme.

J'ai regardé les sources de JABPE mais c'est quelque peu confus...

Avez-vous des exemples de codes ?

Note: Je reflechis à coder un petit IDE.

@+

JF
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Tu doit envoyé un message au compilateur via l'invite de commande, je ne sais plus exactement quoi.
minirop
Messages : 321
Inscription : mer. 02/août/2006 21:06

Message par minirop »

Code : Tout sélectionner

C:\Program Files\PureBasic\Compilers>pbcompiler /?

PBCompiler "FileName"

Options:
--------

/DEBUGGER: Enable the debugger
/EXE "FileName": Create an executable to the given filename
/DLL: Create a DLL
/CONSOLE: Create a console executable
/ICON "FileName": Add an icon to the executable
/RESOURCE "FileName": Add a resource file (.rc) to the executable
/QUIET: Disable all unnecessary textoutput
/COMMENTED: Produce a commented asm output (PureBasic.asm)
/REASM: Compile the 'PureBasic.asm' file to an executable
/XP: Add the Windows XP theme support to the executable
/INLINEASM: Enable the inline ASM support
/RESIDENT "FileName": Create a resident file to the given filename
/IGNORERESIDENT "FileName": ignore the given resident
/LINENUMBERING: Enable line numbering in the final executable for OnError
/STANDBY: Wait for external commands (editor, scripts...)
/MMX, /3DNOW, /SSE or /SSE2: Create a processor specific executable
/DYNAMICCPU: Create a executable containing all processor specific routines
/THREAD: Use thread safe runtime for strings and general routines
/UNICODE: Use unicode instead ascii for strings management
/SUBSYSTEM "Name": Use this subsystem to replace a set of internal functions
/VERSION: Display the version of the compiler
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

Exemple de Freak

Et il faut lire le fichier CompilerInterface.txt qui se trouve dans le répertoire SDK.

Code : Tout sélectionner

Compiler = RunProgram(#PB_Compiler_Home+"Compilers\Pbcompiler.exe", "/STANDBY", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide)
If Compiler = 0
  MessageRequester("", "cannot start compiler")
  End
EndIf

; compiler version
;
Response$ = ReadProgramString(Compiler)
Debug Response$

; Wait for compiler ready
;
Response$ = ReadProgramString(Compiler)

If StringField(Response$, 1, Chr(9)) = "ERROR"
  MessageRequester("", "Error: " + StringField(Response$, 2, Chr(9)))
  CloseProgram(Compiler)
  End
EndIf

; Get a structure def
;
WriteProgramStringN(Compiler, "STRUCTURE"+Chr(9)+"STARTUPINFO")

Repeat
  Response$ = ReadProgramString(Compiler) 
  If Response$ = "OUTPUT"+Chr(9)+"COMPLETE"
    Break
  EndIf 
  Text$ + Response$ + Chr(13)
ForEver

WriteProgramStringN(Compiler, "END")
CloseProgram(Compiler)

MessageRequester("", Text$)
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

@Comtois : Même avec le nouveau pipe vers le compilateur 4.10 ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

surtout avec le nouveau pipe.

Je crois que ce fichier CompilerInterface.txt n'existe que depuis la 4.10 pour le nouveau pipe justement. Tout est expliqué, enfin je pense , je n'ai jamais fait d'essais de compilation.
Mais le code ci dessus est intéressant pour récupérer les champs d'une structure, c'est un exemple qui montre comment traiter les commandes (lecture / écriture ) avec le compilo.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre