Compli. d'un fichier .pb en .exe par ligne de com [Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Compli. d'un fichier .pb en .exe par ligne de com [Résolu]

Message par Stefou »

A QUE COUcou ! :)

Salut tous

Voilà je voudrais savoir si il est possible de compiler un fichier purebasic en executable, en ligne de commande.
Ex : une fonction sous pure : Compile ("test.pb","test.exe")
Ou alors Runprogram("Purebasic.exe") avec comme argument "test.pb","test.exe" et /C

Voilà merci d'avance et bonne prog à tous !
Stef 8)
Dernière modification par Stefou le jeu. 07/févr./2008 18:48, modifié 1 fois.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

"Utiliser le compilateur SHELL" dans l'aide de PB :wink:
Introduction

Le compilateur SHELL est situé dans le répertoire 'Compilers\' de la distribution PureBasic. La manière la plus simple d'y accéder est d'ajouter ce répertoire à la variable PATH de Windows, ce qui vous donnera un accès permanent à toutes les commandes de ce répertoire.
Paramètres du compilateur

/? : affiche une aide simplifiée sur le compilateur.

/COMMENTED : créé un fichier de sortie '.asm' commenté en même temps que l'exécutable. Ce fichier peut être ré-assemblé ultérieurement après l'avoir modifié selon vos besoins. Cette option est à destination des programmeurs avancés.

/DEBUGGER : active le débogueur.

/EXE "NomFichier" : créé un fichier exécutable indépendant spécifié par NomFichier.

/ICON "IconName" : Ajoute l'icône spécifiée par IconName dans l'exécutable.

/INLINEASM : Active la fonction assembleur en ligne (des routines asm peuvent être écrites directement dans le code source BASIC).

/RESIDENT "NomFichier" : Crée un fichier résident spécifié par NomFichier.

/CONSOLE: le fichier de sortie est au format Console. Le format par défaut est Win32.

/DLL: le fichier de sortie est une DLL.

/NT4: Intègre la compatibilité NT4 pour les fonctions multimédia (Sprite, Keyboard, Mouse).

/XP: Ajoute le support des thèmes ('skins') pour Windows XP.

/REASM: Réassemble le fichier PureBasic.asm file en fichier exécutable. Ceci permet d'utiliser la fonction /COMMENTED, de modifier le fichier de sortie asm et de recréer un exécutable.

/LINENUMBERING: Ajoute des informations concernant les lignes et les fichiers sources à l'exécutable, qui peut le ralentir considérablement. Cela a été concu pour fonctionner en conjonction avec la bibliothèque OnError.

/QUIET: Désactive toutes les éditions de texte inutiles. Très pratique lorsque vous utilisez un éditeur tiers.

/STANDBY: Charge le compilateur en mémoire, lequel attend de commandes externes (éditeurs, scripts...).

/MMX, /3DNOW, /SSE or /SSE2: Génère un exécutable spécifique à un type de processeur. Si une routine est disponible dans une version optimisée pour le type de processeur choisi, elle sera utilisée. Du coup, l'exécutable ne fonctionnera correctement que sur ce type de processeur.

/DYNAMICCPU: Génère un exécutable qui contient toutes les versions des routines spécialement optimisées pour un type de processeur. Quand le programme se lance, il déterminera dynamiquement le type du processeur et choisira les routines les plus adaptées. Cela produit un exécutable plus gros mais plus rapide.

/RESOURCE "NomFichier": Ajoute un fichier de resource Windows (.rc) à l'exécutable ou la DLL. Ce fichier ne doit pas être un fichier resource compilé, mais un fichier texte contenant des directives. Il est possible de ne specifier qu'un seul fichier resource, mais il peut en inclure d'autre si besoin est, à l'aide des directives adéquates.
/LINKER "FichierCommandes": Spécifie un fichier qui contient des commandes à passer directement au linker. Sur Windows, PureBasic utilise le linker de PellesC (polink), plus d'informations à propos des options possible sont disponible dans l'aide de PellesC.

/IGNORERESIDENT "Fichier": Ne charge pas le fichier résident quand au démarrage du compilateur. C'est principalement utilisé quand un mise à jour d'un fichier résident déjà existant est nécessaire (en conjonction avec /CREATERESIDENT).

/CONSTANT Nom=Valeur: Crée la constante spécifiée avec la valeur indiquée.
Exemple: 'pbcompiler test.pb /CONSTANT MaConstante=10'. La constante #MaConstante sera créée automatiquement avec la valeur 10 avant de commencer la compilation. Très utile pour faire de la compilation ciblée à partir de scripts.

The following two compiler options are needed for creating programs running on Microsoft Vista OS. They are both options for the included manifest, so they are ignored on older windows versions. With none of these switches, the exe will run as a normal user as well, but with virtualisation turned on (i.e. registry and file redirection). It is recommended to use the /USER switch to turn of virtualisation for all programs that comply to the standard user priviledges, as it is only intended for compatibility for older programs. These options are also available in the IDE compiler options.
/ADMINISTRATOR: Will cause the program to request admin priviledges at start. The program will not run without it. This option is needed. Note: You can also debug programs with this flag, but only with the standalone gui debugger (as it must run in elevated mode as well).
/USER: The program will run as the user who started it. Virtualisation for the exe is turned off.
Exemple:

shell> pbcompiler sourcecode.pb

Le compilateur compile le code 'codesource.pb' et l'exécute.
shell> pbcompiler sourcecode.pb /DEBUGGER /INLINEASM

Le compilateur compile le code 'codesource.pb' et l'exécute avec le débogueur actif en autorisant l'assembleur en ligne.
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Un petit exemple :

Après à toi d'ajouter toutes les options au compilo que tu as besoin ;)

Pour voir les options du compilo (c'est la même chose que le poste de Wolfjeremy), mais tu peux faire tes tests après

Code : Tout sélectionner

; Adresse programme en ligne de commande
cmd$ = Space(255) : GetEnvironmentVariable_("comspec", @cmd$, 255)
; Dossier où se trouve le compilateur
path$ = #PB_Compiler_Home+"Compilers\"
; On récupère la version courte de l'adresse du compilo
ShortPath$ = Space(#MAX_PATH)
GetShortPathName_(path$, @ShortPath$, #MAX_PATH)
; On affiche les paramètres
RunProgram(cmd$, "/k PBCompiler.exe /?", ShortPath$)
Pour compiler un code sans option

Code : Tout sélectionner

AdresseSourcePB$ = "c:\test.pb"
AdresseExe$ = "c:\test.exe"
; Pour compiler une source
path$ = #PB_Compiler_Home+"Compilers\"
RunProgram(path$+"PBCompiler.exe", AdresseSourcePB$+" /EXE "+AdresseExe$, "")
Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message par Stefou »

Et en plus ....sa marche ! :)

Merci et bonne soirée.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

a ce propos peut on distribuer le compilateur de pure basic avec une de nos creation

genre si je veux avec mon PureGolo creer des fichiers prg au "format purebasic"

c'est a dire qu'un prg Puregolo soit transformé en prg toto.pb

et que je fourni un bouton " compilation" et le compillateur Purebasic ,dans mon pureGolo....
qui utiliserai le compilateur de pure pour creer un executable de toto.pb ..... hum


vous voyez le genre ?

croyez vous ça possible au niveau des Droits d'auteur ?
8O
Dernière modification par Backup le jeu. 07/févr./2008 19:18, modifié 1 fois.
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

Question délicate quand même.

Parce que c'est quand même le compilateur que tu paye, et pas uniquement les outils additionel.
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

Dobro a écrit :a ce propos peut on distribuer le compilateur de pure basic avec une de nos creation

genre si je veux avec mon PureGolo creer des fichiers prg au "format purebasic"

c'est a dire qu'un prg Puregolo soit transformé en prg toto.pb

et que je fourni un bouton " compilation" et le compillateur Purebasic ,dans mon pureGolo....
qui utiliserai le compilateur de pure pour creer un executable de toto.pb ..... hum


vous voyez le genre ?

croyez vous ça possible au niveau des Droits d'auteur ?
8O
non, pas pour le compilateur de la version enregistrée
oui, si c'est un compilateur ou un runtime que tu as écrit toi-même...

extrait du contrat de licence de pb

Code : Tout sélectionner

La version de démonstration de PureBasic peut être distribuée librement tant que le contenu de l'archive reste intacte. Il n'est permis de modifier, changer l'organisation de l'archive sans la permission écrite de Fantaisie Software. 

[color=red]La version complète de PureBasic ne doit en aucun cas être cédée à une personne autre que l'acheteur du logiciel. [/color]

Fantaisie Software détient tous les droits sur PureBasic et ses composants. Aucun module ne peut être utilisé dans une autre application sans l'autorisation de Fantaisie Software. Il est interdit d'encapsuler ou d'utiliser directement les commandes de haut niveau de PureBasic dans un autre langage de programmation que ce soit sous forme de bibliothèques dynamiques (DLL) ou statiques. Cette règle ne s'applique pas pour les utilisateurs possédant une licence de PureBasic. 

Code : Tout sélectionner

Cette règle ne s'applique pas pour les utilisateurs possédant une licence de PureBasic. 
donc on peux distribuer les dll et encapsuler .... blabla, mais pas le compilateur ni les libs...

m'enfin

pat
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Oui d'ailleurs c'est ce qui m'a posé un max de problèmes quand j'avais créé un programme d'installation (création d'un exe de base qui se lit lui même au chargement... auquel on rajoute toutes les infos, les fichiers inclus via un programme chargeur...).

Ca aurait été pourtant si simple de générer le code est de le compiler... Et bien non :D
Répondre