IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Prolog Discussion :

[SWI-Prolog] Générer un EXE Windows


Sujet :

Prolog

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 22
    Points
    22
    Par défaut [SWI-Prolog] Générer un EXE Windows
    Bonjour à tous,

    Je viens d'installer la dernière version de SWI-prolog.
    J'ai regarder la doc (reference manual) dans tous les sens, mais ce point n'est pas clair.

    A partir d'un programme prolog, je voudrais générer un exécutable indépendant sous windows. Le programme ouvre un fichier, traite le contenu, et ecrit dans un fichier le résultat.

    Quelle est la démarche précise ?

    Merci beaucoup à ceux qui pourront m'aider ... ainsi qu'aux autres !!!!

    Emmanuel

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    As-tu déjà vu cette page ?

    J'ai aussi donné un exemple ici.

    Ton programme doit être un programme Prolog qui s'exécute en ligne de commande Prolog. (c'est l'argument de l'option goal de qsave_program.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    La réponse est NON. Je n'avais jamais vu cette page.
    Merci beaucoup pour la réponse ... je vais la lire avec beaucoup d'intérêt.
    Je reviendrai en cas de difficulté !!

    Merci encore.
    Emmanuel

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 22
    Points
    22
    Par défaut (Suite)
    Me revoilà !

    En fait, j'avais déjà bien lu le guide de référence traitant de ce sujet.
    j'avoue que tout n'est pas clair pour moi dans ce paragraphe.
    Néanmoins, je m'en suis inspiré.

    Voici mon bout de code volontairement simple et dépouillé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    parent(X,Y) :- pere(X,Y).
    parent(X,Y) :- mere(X,Y).
     
    pere(emmanuel,paul).
    mere(florence,paul).
     
    requete :- parent(X,paul),write(X),write(' '),fail.
    Je souhaite réaliser un exécutable test.exe sous windows qui, lancé en mode commande, permettra d'afficher sur l'écran le résultat de la requête. A terme, il traitera des fichiers en entrée et en sortie ... avant d'être intégré dans un contexte XPCE.

    Ensuite, j'exécute la ligne suivante sous SWI-prolog :

    qsave_program('test.exe', [goal(requete), stand_alone(true)]).

    Voici ce que j'obtiens :
    10 ?- qsave_program('test.exe', [goal(requete), stand_alone(true)]).
    % d:/programs/swi prolog/library/sort compiled into sort 0.00 sec, 5,292 bytes
    % d:/programs/swi prolog/library/prolog_stack compiled into prolog_stack 0.00 sec, 7,344 bytes
    % d:/programs/swi prolog/library/gensym compiled into gensym 0.00 sec, 2,428 bytes
    % d:/programs/swi prolog/library/edinburgh compiled into edinburgh 0.00 sec, 1,968 bytes
    % d:/programs/swi prolog/library/date compiled into date 0.02 sec, 9,432 bytes
    % Autoloading man_util: (meta_predicate)/1 from d:/programs/swi prolog/library/quintus
    % d:/programs/swi prolog/xpce/prolog/lib/pce_manual loaded into pce_manual 0.03 sec, 179,900 bytes
    % d:/programs/swi prolog/library/backcomp compiled into backward_compatibility 0.00 sec, 7,688 bytes
    % library(check) compiled into check 0.02 sec, 16,664 bytes
    % d:/programs/swi prolog/library/make compiled into make 0.02 sec, 19,028 bytes
    % Autoloading swi_ide:pce_image_directory/1 from d:/programs/swi prolog/xpce/prolog/lib/pce_image
    % d:/programs/swi prolog/xpce/prolog/lib/swi_ide compiled into swi_ide 0.00 sec, 10,388 bytes
    % d:/programs/swi prolog/xpce/prolog/lib/portray_object compiled into pce_portray_object 0.00 sec, 11,844 bytes
    % library(pce_meta) compiled into pce_meta 0.02 sec, 40,284 bytes
    % library(swi_edit) compiled into pce_nedit 0.02 sec, 47,288 bytes
    % d:/programs/swi prolog/library/edit compiled into prolog_edit 0.03 sec, 69,692 bytes
    true.
    Super ... mais rien concernant test.exe !!! Où est-il ? sous quelle forme ?

    Merci beaucoup pour votre aide !!

    Emmanuel

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Ton fichier se trouve dans le répertoire par défaut, celui que tu obtiens lorsque tu essaies de charger un fichier dans l'éditeur Prolog.

    Fais un double-click dessus, ça fonctionne bien !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Points : 22
    Points
    22
    Par défaut
    Merci !!

    Je n'ai pas trouvé l'exe au bon endroit, car le paramétrage de l'éditeur n'était pas bon (pas le bon disque ==> mes documents par défaut).

    Bon. L'exécutable a bien été généré. Par contre, quand je l'exécute, j'obtiens l'ouverture de la fenêtre SWI-prolog avec ce contenu :

    ERROR: Initialization goal prolog_gui:register_directories raised exception:
    ERROR: source_sink `icons/nospy' does not exist
    emmanuel florence 1 ?-


    Question 1 : a quoi est due l'erreur indiquée ? cf mon code dans le post précédent.

    Question 2 : pourquoi SWI s'ouvre t-il ? Peut-il rester caché ? En fait j'aimerai faire un traitement batch en ligne de commande, que le programme réalise ses tâches et envoie ses output dans le stdout par défaut. Est-ce possible ?

    Encore merci !

  7. #7
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Pour l'erreur de début, pour le moment je ne sais pas.
    Pour la suite, tu lances un exe qui s'exécute dans l'environnement Prolog, il est donc normal que Prolog s'exécute.
    Si tu veux que les output soient redirigées vers un fichier je te conseille de regarder cette discussion : en particulier le message N°4.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Finance

    Informations forums :
    Inscription : Février 2013
    Messages : 6
    Points : 9
    Points
    9
    Par défaut generer un EXE windows avec gnu-prolog
    je cherche a generer un executable windows en utilisant gnu-prolog mais j'ai ebau chercher,je ne trouve que la commande"qsave_program" quon nutilise que pour SWI-prolog.
    quelqu'un peut il m'aider? je vous envoie ci-dessous mon code gnu-prolog qui est en fait un probleme de satisfaction de contraintes. mon code genere la liste des solutions qui repondent aux contraintes enumérées dans le code. le nom de mon fichier est xxx.pro:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Vars=[C1,C2,C3,C4,L1,L2,L3,L4],
    fd_domain(Vars,1,4),
    fd_all_different([L1,L2,L3,L4]),
    fd_all_different([C1,C2,C3,C4]),
    C1+L1#\=C2+L2, C1+L1#\=C3+L3, C1+L1#\=C4+L4,
    C2+L2#\=C3+L3, C2+L2#\=C4+L4 ,C4+L4#\=C3+L3,
    C1-L1#\=C2-L2, C1-L1#\=C3-L3, C1-L1#\=C4-L4,
    C2-L2#\=C3-L3, C2-L2#\=C4-L4 ,C4-L4#\=C3-L3,
    fd_labeling(Vars,[backtracks(2)]).

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Bonjour

    Je n'utilise pas gnu-prolog, mais il me semble, en lisant la doc page 21 et suivantes, qu'il est possible de créer des exé.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. Réponses: 5
    Dernier message: 03/04/2010, 03h46
  2. Réponses: 3
    Dernier message: 03/05/2006, 15h30
  3. [Qt]Exe windows à partir de QT sous linux
    Par ccensam dans le forum Qt
    Réponses: 4
    Dernier message: 13/04/2006, 14h47
  4. Réponses: 6
    Dernier message: 27/12/2005, 13h48
  5. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 10h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo