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

Autres éditeurs Discussion :

MinGW et plld


Sujet :

Autres éditeurs

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut MinGW et plld
    Bonjour à tous,

    Je dois faire fonctionner du C/C++ qui utilise du SWI-Prolog...

    Pour mon C/C++ j'utilise MinGW. Et pour Prolog, je souhaite utiliser le compilateur C qui est inclu à SWI-Prolog qui est "plld"

    J'ai trouvé sans problème des infos la dessus... j'ai trouvé un site où ils donnent même un programme simple sur les nombres premiers avec un fichier premier.cpp et premier.pl .. http://www.montefiore.ulg.ac.be/~van...terfacage.html

    Pour compiler, sous linux, je n'ai eu aucun problème avec plld qui a du trouvé le compilateur c par défaut... je l'ai lancé tout simplement en mettant :
    plld -o output premier.cpp premier.pl

    Mon problème se situe sous Windows (et oui, on nous a obligé à utiliser windows)....

    Donc comme nous avons choisi de travailler avec le compilateur MinGW, je lance la même ligne de compilation (plld -o output.exe premier.cpp premier.pl), il ne veut pas car il ne trouve pas 'cl.exe'...

    Logique, donc je lui dit que j'utilise le compilateur de mingw, en notant :
    plld -o output.exe -c++ mingw32-c++ premier.cpp premier.pl

    Et là, il me fait deux erreurs principales :

    • mingw32-g++.exe: /MD: No such file or directory
      mingw32-g++.exe: /GX: No such file or directory

      Je ne comprend pas pourquoi il cherche ces dossiers... on dirait qu'il les cherche comme si j'utilisais cl.exe... je ne comprend rien...



    • premier.cpp:11:17: stdio: No such file or directory

      En gros, il ne veut pas trouver mon dossier d'include qui est dans mingw alors que j'ai essayé des tonnes de choses, entre autres :

      plld -c++ mingw32-g++.exe -Dinclude-directory C:/MinGW/include/ premier.cpp premier.pl

      plld -c++ mingw32-g++.exe -cc-options,-I C:/MinGW/include/ premier.cpp premier.pl

      Mais il n'arrive jamais à trouver ce dossier d'include...


    Si vous avez une idée, elle serait la bienvenue... je n'ai vraiment pas trouvé grand chose sur le net... peu de personne utilisent plld avec un autre compilateur... je ne suis même pas sure que ce soit vraiment possible... Et j'ai demandé dans la partie de Prolog, mais personne n'a su me répondre... je me suis dit que dans la partie de c/c++, j'aurais peut-être plus de chances...

    Merci d'avoir lu tout ça...

    Bon après midi

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    La première erreur, c'est bien qu'il croit utiliser Visual : /MD et /GX sont des paramètres (non des dossiers) qu'accepte cl.exe.
    Tu es sûr au moins que plld peut fonctionner avec mingW ?

    La seconde erreur, c'est stdio ou stdio.h qui foire ? Car stdio n'existe pas...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Citation Envoyé par Médinoc
    La première erreur, c'est bien qu'il croit utiliser Visual : /MD et /GX sont des paramètres (non des dossiers) qu'accepte cl.exe.
    Tu es sûr au moins que plld peut fonctionner avec mingW ?
    Merci beaucoup, au moins, maintenant, j'en suis sure...
    Ben apparement, oui, plld devrait pouvoir fonctionner avec minGW puisqu'il dit qu'on peut préciser le compilateur...

    Citation Envoyé par Médinoc
    La seconde erreur, c'est stdio ou stdio.h qui foire ? Car stdio n'existe pas...
    Oui, mais en fait, il existe bien, mais j'ai beau mettre le dossier des include dans le path, ou directement en include dans la ligne de compilation, il ne le trouve pas, c'est très bizarre...

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Citation Envoyé par mystar
    Merci beaucoup, au moins, maintenant, j'en suis sure...
    Ben apparement, oui, plld devrait pouvoir fonctionner avec minGW puisqu'il dit qu'on peut préciser le compilateur...
    Attention : Je pense que l'option -c++ mingw32-g++.exe ne dit pas à plld que son compilateur est un compilateur mingW : Elle lui dit simplement que son compilateur C++ s'appelle "mingw32-g++.exe".

    Si tel est le cas, il doit exister (ou non) une AUTRE option pour lui dire que l'environnement est mingW (c'est-à-dire, que les paramètres sont de type GCC et non de type cl). S'il n'y en a pas, c'est que plld pour Windows ne supporte pas mingW, seulement Visual.
    Mais je pense qu'il doit y avoir une telle option, vu que plld pour linux supporte un GCC, c'aurait été stupide de la part des développeurs de mettre un support EXCLUSIF de Visual dans leur version Windows...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    ok, merci beaucoup... alors j'ai bien regardé en détail, et en effet, tu as peut-être raison... en tout cas, il gère bien le gcc d'après ce que j'ai lu...

    En regardant les options, voilà ce que j'ai mais je ne vois pas d'autres options qui fonctionneraient...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    usage: plld -help
           plld [options] inputfile ...
           plld -shared -o out inputfile ...
           plld -dll -o out inputfile ...
           ÚD        -E cppargument ...
     
    options:
           -o out           define output file
     
           -v               verbose
           -f               fake (do not run any commands)
           -g               Compile/link for debugging
           --version        for GCC: run gcc --version
     
           -pl prolog       Prolog to use
           -ld linker       link editor to use
           -cc compiler     compiler for C source files
           -c++ compiler    compiler for C++ source files
     
           -c               only compile C/C++ files, do not link
           -nostate         just relink the kernel
           -shared          create target for load_foreign_library/2
           -embed-shared    embed Prolog in a shared object/DLL
           -dll             synonym for -embed-shared
           -fpic            compile small position-independent code
           -fPIC            compile large position-independent code
     
           -pl-options,...  Add options for Prolog
           -ld-options,...  Add options for linker
           -cc-options,...  Add options for C/C++-compiler
           -F base          Load    swi(base.rc)
           -goal goal       (Prolog) entry point
           -toplevel goal   (Prolog) abort toplevel goal
           -initfile file   (Prolog) profile file to load
           -class class     {runtime,kernel,development}
     
           -O*              Optimization passed to compiler
           -Wl,*            Options passed to linker
           -W*              Warning options passed to compiler
     
           -Dmacro          Define macro (C/C++)
           -Umacro          Undefine macro (C/C++)
           -Iincludedir     Include directory (C/C++)
           -Llibdir         Library directory (C/C++ link)
           -llib            library (C/C++)
    Est-ce que vous avez une idée ???

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Moi non plus je ne vois rien...
    Je crois bien que, selon l'heureuse expression de mon collègue de stage, la version Windows de plld a été "faite par des stagiaires"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Super !!!!!
    C'est pour ça que j'ai droit à ça avant de le lancer :
    "plld comes with ABSOLUTELY NO WARRANTY. "



    Merci pour ton aide en tout cas...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Bon, comme apparement, plld qui correspond à SWI-Prolog ne fonctionne pas, je me suis lancée avec SICStus Prolog qui utilise spld et qui apparement, et quelque chose qui tient la route (c'est payant)...

    Mais il me fait la même erreur (il cherche cl.exe)... donc je voudrais lui préciser que j'utilise minGW avec mingw32-cc.exe mais je ne trouve pas quelle option me permet de le faire (je ne pense pas que ce soit imaginable que ce ne soit pas possible, puisqu'on peut l'utiliser sous linux !!!)

    Voici la liste des options de spld... est-ce que vous trouvez une option qui pourrait convenir ???? (j'ai essayé pas mal de choses, mais toujours sans succès )
    http://www.sics.se/sicstus/docs/3.12...n-Builder.html

    Merci beaucoup et bonne journée

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Ben... Non, trouve pas.

    C'est quand même stupide que la version Windows d'un compilo sous Linux ne soit pas compatible avec mingW!

    Tu as peut-être la possibilité de recompiler plld ou sictus pour Windows (en utilisant mingW ou cygwin justement) en changeant les directives de compilation pour qu'il cherche à nouveau GCC...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Citation Envoyé par Médinoc
    Ben... Non, trouve pas.

    C'est quand même stupide que la version Windows d'un compilo sous Linux ne soit pas compatible avec mingW!

    Tu as peut-être la possibilité de recompiler plld ou sictus pour Windows (en utilisant mingW ou cygwin justement) en changeant les directives de compilation pour qu'il cherche à nouveau GCC...

    pfff.... merci d'avoir regarder...

    Whaou, ça à l'air bien compliquer tout ça... lol...
    Bon, je vais essayer de regarder si c'est faisable...
    Merci

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Je viens de voir un truc absolument affolant dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Question: spld fails with the message:
             ’rc’ is not recognized as an internal or external command,
             operable program or batch file.
             ! Could not generate .res file for data resources. at spld.pl line 745.
     
    Question: splfr fails with the message:
             ’cl’ is not recognized as an internal or external command,
             operable program or batch file.
             ! Could not compile spa011160.c: No such file or directory
     
    You need to include Microsoft Visual Studio (or at least its C compiler and linker) in your
    PATH environment variable. The easiest way is to run vcvars32.bat from the Visual Studio
    distribution. To do it manually (Windows NT/2000/XP):
    C:\> set PATH=location of Microsoft Visual Studio;%PATH%
    Donc ils disent texto que je dois utiliser Microsoft Visual Studio !!!!

  12. #12
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    On dirait bien que dans leur version windows, oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  13. #13
    Invité de passage
    Inscrit en
    Septembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1
    Par défaut Interfacer du c avec swi-prolog sous Windows : oui c'est possible
    Pour ceux qui sont toujours intéressés pour interfacer du c avec Swi-Prolog sous Windows, il suffit de compiler tout d'abord le ou les programmes c (ou c++) avec mingw32, puis de lancer le batch suivant, qui compilera le programme PROLOG puis le concatènera à l'exécutable obtenu avec mingw32. Appelons le batch suivant 'linkcpl.bat' :

    @echo off

    plcon.exe -f none -F none -g true -t "consult(['%2']),qsave_program('pltmp.exe',[goal='\$welcome',toplevel=prolog,init_file=none])"
    copy /b %1+pltmp.exe %3
    del pltmp.exe


    Exemple : linkcpl tmppuiss4.exe puiss4.pl puiss4.exe

    - tmppuiss4.exe est l'exécutable obtenu à partir du ou des fichiers c.
    - puiss4.pl est le programme Prolog à interfacer.
    - puiss4.exe est l'exécutable final.

    Voili voilou...

Discussions similaires

  1. DevC++ avec un nouveau MinGW est disponible
    Par HRS dans le forum Dev-C++
    Réponses: 1
    Dernier message: 28/02/2005, 13h37
  2. Opérateur not ? Bug avec MinGW 3.4 ? ou mot clé ?
    Par Groove dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 31/01/2005, 18h05
  3. [minGW] page man
    Par nicolas581 dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 20/08/2004, 16h45
  4. [info ide] mingw developper studio
    Par heinquoi dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 29/07/2004, 17h02
  5. Bibliothèque Gcc/mingw 2.95.3.6
    Par richard dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 11/10/2003, 22h54

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