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

Caml Discussion :

Installer le module GlGtk


Sujet :

Caml

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut Installer le module GlGtk
    Bonjour,
    je voudrais installer le module GlGtk,
    me donne Unbound module GlGtk. Pourtant j'ai bien installé la librairie lablGtk puisque quand j'entre lablgtk dans un bash ocaml se lance.

    Compilation :
    OC = ocamlbuild -tag debug -lib unix


    Merci

  2. #2
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Salut !

    Sauf erreur de ma part, ce module (GlGtk) est conçu pour dialoguer avec le projet indépendant LablGL. En essayant de faire quelque chose dans l'interpréteur, j'en suis arrivé à ceci :

    ocaml -I +lablgtk2 -I +lablGL lablgtk.cma lablgl.cma lablgtkgl.cma

    1. J'ajoute les chemins des deux libs
    2. je charge les libs lablgtk.cma et lablgl.cma
    3. je charge aussi lablgtkgl.cma qui correspond à GlGtk

    Cordialement,
    Cacophrène

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Salut Cacophrene,
    merci pour ta réponse, effectivement ça marche mais le soucis c'est que j'ai besoin de la ligne de commande pour compiler, je peux pas rajouter ça à ocamlbuild ni à ocamlc



    Et j'ai un autre souci concernant les modules d'ocaml. J'essaye de me servir d'un parser que j'ai créé dans un autre fichier, le main par exemple. Du coup je compile mon parseur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ocamlc -pp "camlp4o pa_extend.cmo" -I +camlp4 -c monparser.ml

    Et dans mon main.ml je mets mais il renvoie Error while linking main.cmo: Reference to undefined global `Parser' . Du coup je sais pas comment je pourrais faire pour en faire un module. C'est l'utilssation des librairies qui posent problème puisque j'ai aussi fait open Type en ayant fait au préalable :
    et ça ça fonctionne.



    La compilation en ocaml est vraiment tordue ou alors c'est moi.

  4. #4
    Membre éprouvé
    Avatar de Cacophrene
    Homme Profil pro
    Biologiste
    Inscrit en
    Janvier 2009
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Biologiste

    Informations forums :
    Inscription : Janvier 2009
    Messages : 535
    Points : 1 125
    Points
    1 125
    Par défaut
    Salut !

    Citation Envoyé par Splash_
    La compilation en OCaml est vraiment tordue ou alors c'est moi.
    Ni l'un ni l'autre, ce me semble. La compilation en OCaml n'est pas tordue ; il est souvent difficile de trouver une documentation détaillée et claire (ce qui ne veut pas dire que cette documentation n'existe pas).

    Citation Envoyé par Splash_
    le soucis c'est que j'ai besoin de la ligne de commande pour compiler, je peux pas rajouter ça à ocamlbuild ni à ocamlc
    Là je ne comprends pas. Ce que je te donne est un exemple de ligne de commande. Et puis on peut ajouter toutes ces infos dans le fichier myocamlbuild.ml utilisé par ocamlbuild. Voici un exemple (non testé !) :

    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
    open Ocamlbuild_pack
    open Ocamlbuild_plugin
    
    (*  Les répertoires supplémentaires. *)
    let dirs = ["-I"; "+lablgtk2"; "-I"; "+lablgl"]
    (* Les bibliothèques. *)
    let libs = ["lablgtk"; "lablgl"; "lablgtkgl"; "unix"]
    
    let _ =
      dispatch begin function 
        | After_options ->
          (* Mode silencieux (plus rapide). *)
          Log.level := 0;
          (* Ajout des options APRÈS les options passées en ligne de commande. *)
          Options.ocaml_libs := libs;
          Options.ocaml_cflags := dirs;
          Options.ocaml_lflags := dirs
        | _ -> ()
      end
    Pour le parser écrit avec camlp4, il y a eu pas mal de changements depuis la 3.11. Quelle version d'OCaml utilises-tu ? Spontanément, avec OCaml 3.11, je crois que j'essaierai quelque chose comme :

    ocamlc -I +camlp4 dynlink.cma camlp4o.cma test.ml

    Essaie de me préciser un peu comment s'articule ton projet. Ça me permettra d'avoir une vue d'ensemble pour mieux t'aider pour tes problèmes de compilation.

    Cordialement,
    Cacophrène

  5. #5
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    @Splash
    Il y a une différence entre le compilateur et le toplevel.
    Si ton fichier monparser.ml ressemble à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    module Parser = struct
    ...
    end
    Alors dans le toplevel tu peux ouvrir le module à l'aide de open Parser.
    Par contre, hors toplevel, tu peux ouvrir à l'aide de open Monparser.Parser.

    Le compilateur considère que le contenu de ton fichier source est en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    module Monparser = struct
      module Parser = struct
      ...
      end
    end
    Citation Envoyé par Splash
    C'est l'utilisation des librairies qui pose problème
    Si c'est vraiment ça alors je ne sais pas comment t'aider, n'étant pas un utilisateur de camlp4.

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    Je voudrais réussir à compiler ce projet http://darcs.dgmil.net/cgi-bin/darcs...;a=tree;f=/src en mode graphique (make graphical) pour avoir un bon exemple de compilation.

    Ce que je voulais faire c'est utiliser les fonctions de parser dans un autre fichier ce que j'ai trouvé comme solution (et qui marche) pour pouvoir faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ocamlbuild $(ocamlflags) monparser.cmx
    qui créer tous les fichiers nécessaires, (ma propre libraire) et ensuite faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ocamlbuild $(ocamlflags) test.byte

Discussions similaires

  1. Installer le module DBI et DBD::MySQL
    Par piloupy dans le forum SGBD
    Réponses: 3
    Dernier message: 26/07/2005, 09h55
  2. probleme pour installer le module DBD::Sybase
    Par black_code dans le forum SGBD
    Réponses: 9
    Dernier message: 25/07/2005, 15h06
  3. Installer un module
    Par cryptorchild dans le forum Modules
    Réponses: 4
    Dernier message: 16/07/2005, 03h23
  4. installation du module DBD::Pg
    Par champijulie dans le forum Modules
    Réponses: 2
    Dernier message: 18/05/2005, 17h21
  5. Installation du module DBI pour perl sous W2K
    Par tomcat dans le forum Modules
    Réponses: 6
    Dernier message: 22/01/2004, 11h54

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