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

OpenGL Discussion :

lbrairie glui sous mac


Sujet :

OpenGL

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut lbrairie glui sous mac
    Salut, en désespoir de cause je me rabats sur le forum en espérant de l'aide.

    J'ai programmé de l'openGL en utilisant GLUT. Mais pour construire mon interface j'utilise aussi GLUI.
    J'ai récupérer la version v2_2 de glui que j'arrive à compiler. Ca créer ds le répertoire glui_v2_2/lib un fichier libglui.a

    Mon programme tourne sous linux, sous windows (les ordi de l'école). Mais voilà moi j'utilise un mac, j'en suis fière mais là ça marche pas.
    J'ai un (très) gros problème de makefile.

    mon makefile :

    #---------------
    CC=g++ -O3
    LIBS=-framework OpenGL -framework GLUT -framework Foundation -L"../glui_v2_2/lib" -lglui

    MAC= -DMAC

    INC= -I"../glui_v2_2/lib" -I"/System/Library/Frameworks"

    diamantGL : diamant.o brillant.o Diam.o Interface.o Liste.o Lumiere.o utilitaires.o deplacement.o decor.o
    $(CC) -o diamantGL diamant.o brillant.o Diam.o Interface.o Liste.o Lumiere.o utilitaires.o deplacement.o decor.o $(LIBS)

    diamant.o : Diamant.cpp Diamant.h
    $(CC) -c Diamant.cpp -o diamant.o $(INC) $(MAC)

    .....etc...

    decor.o : decor.cpp decor.h
    $(CC) -c decor.cpp -o decor.o $(INC) $(MAC)

    clean:
    rm -f *.o

    archive: *.c *.h makefile
    tar cvf diamant.tar *.c *.h *.sh makefile
    #---------------

    ma librairie se trouve dans le répertoire glui_v2_2/lib qui est en avant du répertoire ds lequel se trouve mon makefile. Le chemin existe bel est bien, j'ai vérifié par le terminal.

    A la compilation il me marque juste :
    ld: can't locate file for: -lglui

    c'est la seule erreur.

    J'ai du remplacer au préalable car il me mettait une erreur :
    glui_v2_2/lib/libglui.a
    par
    glui_v2_2/lib/randlib libglui.a

    Voilà c'est un projet que je dois rendre et ça doit compiler sous TOUS les systèmes.

    HELP.

  2. #2
    Membre à l'essai
    Inscrit en
    août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : août 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Re: lbrairie glui sous mac
    Citation Envoyé par milliet
    J'ai programmé de l'openGL en utilisant GLUT. Mais pour construire mon interface j'utilise aussi GLUI.

    Mon programme tourne sous linux, sous windows (les ordi de l'école). Mais voilà moi j'utilise un mac, j'en suis fière mais là ça marche pas.
    J'ai un (très) gros problème de makefile.
    C'est peut etre con ce que je vais te dire mais as-tu bien verifie tes includes. Ils changent sur mac os X. Par exemple :
    #include <OpenGL/gl.h>
    #include <OpenGL/glu.h>
    #include <GLUT/glut.h>

    C'est pour ca que tu as mis ton MAC= -DMAC ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    oui c'est pour ca que j'ai un MAC=-DMAC.

    Mes includes sont pour glut sont comme il faut.

    Pour glui j'ai juste #include <glui.h>
    qu'il devrait reconnaitre grâce au makefile. (il devrait aller le chercher dans "../glui_v2_2/lib")

  4. #4
    Membre à l'essai
    Inscrit en
    août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : août 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Personellement mes makefiles ressemblent a ceci (pour du code c)
    j'ai un dossier source qui contient des fichiers *.[ch] et un dossier (dans cet exemple my_libstream) qui contient un fichier .a au link final je lui indique le chemin du .a (la postion de $(LIBS) a une importance)

    LIBS= \
    my_libstream/my_libstream_$(HOSTTYPE).a

    SOURCES= \
    argument.c \
    .....
    redirection.c \
    pipe.c

    OBJS=$(SOURCES:.c=.o)

    all: $(OBJS)
    $(CC) $(LFLAGS) -o $(EXEC) $(OBJS) $(LIBS)
    .c.o:
    $(CC) $(CFLAGS) $< -c -o $@
    clean:
    ....


    J'espere que ca peut t'aider. Je suis pas un expert des Makefiles.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut ranlib
    Qd tu fais ça il ne te fais pas :

    ld: archive: ../glui_v2_2/lib/libglui.a has no table of contents, add one with ranlib(1) (can't load from it)

    ce qui t'oblige à changer le nom de librairie en : ranlib libglui.a ???

  6. #6
    Membre à l'essai
    Inscrit en
    août 2004
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : août 2004
    Messages : 15
    Points : 15
    Points
    15
    Par défaut Re: ranlib
    Citation Envoyé par milliet
    Qd tu fais ça il ne te fais pas :

    ld: archive: ../glui_v2_2/lib/libglui.a has no table of contents, add one with ranlib(1) (can't load from it)

    ce qui t'oblige à changer le nom de librairie en : ranlib libglui.a ???
    Oui c'est normal quand tu crees une lib .a il indexe pas les def des fonctions pour cela tu dois taper pour creer la lib :

    ar cr <nom de la lib> <fichiers *.o>

    puis pour l'indexer :

    ranlib <nom de la lib>

    Petite note supplementaire :
    Par contre si tu as des fonctions croisees du genre : f1() de A.a qui a besoin de g1() de B.a et inversement : g2() de B.a a besoin de f2() de A.a lors du link tu dois appeler tes lib comme ceci : A.a B.a A.a (c bien c--- la prog je te l'accorde !!)

    Sinon je n'ai jamais utiliser de lib "libglui.a", desole.

    Exemple de makefile (pour ma libstream) :

    LIB=my_libstream_${HOSTTYPE}.a

    SOURCES=\
    my_stream.c \
    my_fgetc.c \
    my_fputc.c \
    flags.c

    OBJS=${SOURCES:.c=.o}

    all:${LIB}
    ${LIB}:${OBJS}
    ar cr ${LIB} ${OBJS}
    ranlib ${LIB}
    %.o: %.c
    ${CC} ${CFLAGS} -c $< -o $@
    clean:
    ......

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut suite
    après le ranlib, ça me fait :

    ranlib: archive member: libglui.a(glui_bitmaps.o) offset in archive not a multiple of sizeof(unsigned long) (must be since member is an object file)

    je suis sur que le pb est là, mais je sais vraiment pas comment le résoudre.

Discussions similaires

  1. [glui][mac] un getc qui marche sous windows et pas sous mac
    Par shams dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/05/2007, 11h50
  2. [swig] utilisation de ld sous mac osX tiger.
    Par PyBio dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 26/10/2005, 17h51
  3. détecter os 9 ou 10 sous mac
    Par taly dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2005, 09h56
  4. [C++] Programmation C++ sous Mac
    Par reggae dans le forum Développement OS X
    Réponses: 2
    Dernier message: 09/10/2005, 12h10

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