Comment compiler un prog opengl+gnut sous linux ? [c++] - Programmation
Marsh Posté le 15-06-2001 à 09:38:19
minusplus a écrit a écrit : ben il sait où elles sont les libs, kess tu raconte ? |
elles sont sur le serveur mais il faut tapper une ligne de commande tres compliqué avec GCC .
Marsh Posté le 15-06-2001 à 09:42:08
bon, j'ai pas tout compris mais :
pour spécifier le chemin des libs : -L path
pour spécifier une lib : -l lib
Marsh Posté le 15-06-2001 à 09:46:04
minusplus a écrit a écrit : bon, j'ai pas tout compris mais : pour spécifier le chemin des libs : -L path pour spécifier une lib : -l lib |
c'est au moment de la compilation du .O qu'il ne trouve pas les méthodes opengl ,j'aimerai bien savoir d'ou ça peut venir .
Marsh Posté le 15-06-2001 à 09:53:05
t'as pas linké avec les bonnes libs ou elles sont pas à leur place. tu peux pas copier coller la sortie du linker ? qu'on voie les erreurs ?
Marsh Posté le 15-06-2001 à 10:13:05
minusplus a écrit a écrit : t'as pas linké avec les bonnes libs ou elles sont pas à leur place. tu peux pas copier coller la sortie du linker ? qu'on voie les erreurs ? |
pour le moment je suis chez moi, mais je donnerai plus de details sur la ligne de commande et les libs presentes sur le serveur cette apres midi.
ça vient peut etre de l'admin qui a mal installé opengl et glut.
sinon les erreures du linker c'est des methodes OPENGL qui trouve pas .
[edit]--Message édité par Drakkeng--[/edit]
Marsh Posté le 15-06-2001 à 10:14:41
Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies...
Ca ressemble a un truc comme ca :
g++ -o programme main.cpp -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps
Conseil : mets tout ca dans un Makefile, comme ca apres tu t'en occupes plus...
Code :
|
comme ca pour compiler ensuite, tu fais juste 'make', et ca marche
Et fait attention a bien mettre une tabulation et pas 8 espaces avant chaque ligne commencant par $(CC)... et la derniere rm -f
[edit]--Message édité par tgrx--[/edit]
Marsh Posté le 15-06-2001 à 10:16:46
tgrx a écrit a écrit : Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies... Ca ressemble a un truc comme ca : g++ -o programme main.cpp -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps Conseil : mets tout ca dans un Makefile, comme ca apres tu t'en occupes plus...
|
trop fort merci beaucoup tu me sauves la vie si ça marche ,je test cette apres midi .
Marsh Posté le 15-06-2001 à 10:58:08
tgrx a écrit a écrit : Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies... Ca ressemble a un truc comme ca : g++ -o programme main.cpp -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps Conseil : mets tout ca dans un Makefile, comme ca apres tu t'en occupes plus...
|
y'a besoin du -L /usr/X11R6/lib ? y'a pas des symlinks dans /usr/lib/ ?
Marsh Posté le 15-06-2001 à 11:01:27
En tout cas chez moi ca ne fonctionne pas dans le -L/usr/X11R6/lib
Marsh Posté le 15-06-2001 à 11:12:33
a mon avis, ça dépend des ditro. j'en connais certaines qui seraient capable de mettre des libs dans /usr/local/lib/
X11R6/lib/ !
Marsh Posté le 19-06-2001 à 16:49:30
maintenant je n'arrive pas a compiler mon prog car il utilise MUI
et je ne trouve pas la librairie .
Comment faire?
ou la trouver et comment l'installer ?
merci
Marsh Posté le 19-06-2001 à 18:03:18
quand je fais une recherche de mui sur mon systeme, je trouve que c'est une calculatrice RPN dans le repertoire /usr/share/glutdemos/
C'est ca que tu cherches
Marsh Posté le 19-06-2001 à 18:21:57
tgrx a écrit a écrit : quand je fais une recherche de mui sur mon systeme, je trouve que c'est une calculatrice RPN dans le repertoire /usr/share/glutdemos/ C'est ca que tu cherches |
non c'est pas la calculatrice que je cherche!!
mais elle a etait faites avec MUI .
MUI c'est une extension de GLUT qui sert a fabriquer des interfaces (boutons etc ..) ,sous windows ça marche niquel ,mais sous linux impossible de trouver comment l'installer .
Sinon comment je pourrais faire pour fabirquer mon interface sans (dans le pire des cas) ?
Marsh Posté le 19-06-2001 à 18:29:07
Es-tu sur que MUI est installee sur ton systeme ?
Sur le mien (pourtant j'ai installe 95% des packages des 7 CD de la Suse 7.1 ), impossible de mettre la main dessus...
Si elle est installee, fais une recherche sur ton disque, et specifie les bons parametres dans la ligne de commande.
Au niveau interface, j'ai recemment eu a utiliser du Glut, mais vu que c'est trop limite tel quel, j'ai utilise Glow, qui est en fait Glut, mais ecrit en C++, ou il y a des classes Fenetres, des classes Buttons, que tu peux instancier, ca marche tres bien, et on peut faire des interfaces assez sympa (regarde les screenshots sur le site).
Seul probleme : Visual C++ refuse d'utiliser Glow, parce les headers sont plein de templates qu'il n'aime pas. Par contre avec gcc ca roule sans probleme
Pour l'URL de Glow, cf le post [BIBLIOLINK C++] (que je n'ai pas ecrit pour rien), et cherche Glow...
Marsh Posté le 19-06-2001 à 18:34:17
D'ailleurs la calculatrice dont je te parlais, elle est la :
http://www.sgi.com/software/opengl/examples/glut/mui/
Et je rectifie legerement ce que j'ai dit a propos de Glow : c'est une sur-couche de Glut, un wrapper en C++. Ce qui veut dire que meme si ca fonctionne avec des classes, derriere tout ca c'est glut qui fonctionne. Et en particulier toutes les fonctions de glut sont accessibles.
En particulier glutGet() pour les fonctions de timing...
Et les tutorials fournis avec le package sont tres bien faits !
Marsh Posté le 19-06-2001 à 19:04:29
tgrx a écrit a écrit : D'ailleurs la calculatrice dont je te parlais, elle est la : http://www.sgi.com/software/opengl/examples/glut/mui/ Et je rectifie legerement ce que j'ai dit a propos de Glow : c'est une sur-couche de Glut, un wrapper en C++. Ce qui veut dire que meme si ca fonctionne avec des classes, derriere tout ca c'est glut qui fonctionne. Et en particulier toutes les fonctions de glut sont accessibles. En particulier glutGet() pour les fonctions de timing... Et les tutorials fournis avec le package sont tres bien faits ! |
super merci beaucoup ,je vais apprendre a m'en servir car je renonce a installer MUI sous linux ,mais c'est dommage j'avais fait une belle interface sous win2000 .
ça me semble la solution idéale GLOW !!
ça m'embette beaucoup que ça marche pas avec le Visual ,tu crois que ça passerai avec le borland C++ ?
[edit]--Message édité par Drakkeng--[/edit]
Marsh Posté le 20-06-2001 à 11:00:18
j'arrive pas a installer GLOW sous la mandrake 8 !!
le makefile ne marche pas
help
.
PS: bientot un screen du jeux !!
Marsh Posté le 20-06-2001 à 11:08:28
Ah ? Tu as quelle version de Glow (moi 1.0.4)
Sur mon systeme (Suse 7.1), je fais :
cd glow_104/glow_src
make
... et ca marche
PS : j'ai GCC 2.95.2
Marsh Posté le 20-06-2001 à 11:14:51
D'ailleurs tu as quoi comme message d'erreur avec le Makefile ??
Marsh Posté le 20-06-2001 à 11:34:07
tgrx a écrit a écrit : D'ailleurs tu as quoi comme message d'erreur avec le Makefile ?? |
j'ai la meme version que toi ,je fais d'autre essai
Marsh Posté le 20-06-2001 à 11:40:07
ça marche maintenant !!!
mais je fais comment pour compiler ?
[edit]--Message édité par Drakkeng--[/edit]
Marsh Posté le 20-06-2001 à 11:41:34
Attention votre Makefile gere mal les dependances, et si vous ne faites pas de make clean vous pouver avoir des Pb si seuls les headers ont changes...
Marsh Posté le 20-06-2001 à 11:51:09
BENB a écrit a écrit : Attention votre Makefile gere mal les dependances, et si vous ne faites pas de make clean vous pouver avoir des Pb si seuls les headers ont changes... |
justement a propos des header il faut les copier quelque part apres avoir lancé make ?
Marsh Posté le 20-06-2001 à 11:54:00
non. ceci est un extrait du Makefile. les headers/sources doivent etre dans le meme repertoire, ce qui est le cas
SRCDIR=.
GLOWDIR=.
BENB > en jetant un oeil au Makefile, on voit que celui-ci fait automatiquement un make clean pour le make all...
Marsh Posté le 20-06-2001 à 12:24:09
tgrx a écrit a écrit : non. ceci est un extrait du Makefile. les headers/sources doivent etre dans le meme repertoire, ce qui est le cas SRCDIR=. GLOWDIR=. BENB > en jetant un oeil au Makefile, on voit que celui-ci fait automatiquement un make clean pour le make all... |
et il existe un moyen de compiler sans le makefile ?
Marsh Posté le 20-06-2001 à 12:30:03
Je peux toujours te filer les librairies compilees si tu veux...
Tu veux pas plutot poster les erreurs que tu recois du Makefile ??
Marsh Posté le 20-06-2001 à 12:36:56
tgrx a écrit a écrit : Je peux toujours te filer les librairies compilees si tu veux... Tu veux pas plutot poster les erreurs que tu recois du Makefile ?? |
non mais ça marche le makefile ,sauf sur mon PC ou le make tourne en boucle ,j'ai du l'interrompre au bout de 1 heure !!
S'etait juste pour savoir si je pouvez m'en passer.
merci de ton aide !!
[edit]--Message édité par Drakkeng--[/edit]
Marsh Posté le 20-06-2001 à 12:43:14
Ca veut dire quoi : "le make tourne en boucle"
Que le programme deraille, ou juste que c'est lent ??
Marsh Posté le 20-06-2001 à 12:49:17
tgrx a écrit a écrit : Ca veut dire quoi : "le make tourne en boucle" Que le programme deraille, ou juste que c'est lent ?? |
ben ça veut dire que quand j'exécute le fichier make dans ma console je vois des messages s'afficher et au bout d'un moment je vois les meme qui reviennent indéfiniment ,je peux laisser mon pc tourner 2 jours ça se fini pas.
Marsh Posté le 20-06-2001 à 13:24:44
Salut je travaille avec Drakkeng je voulais te remercier de ton aide precieuse.
j'ai reussi a installer glow mais maintenant ce qu'il nous fait peur c la compilation de prog fait avec glow ,comme on manque un peu d'experience dans le monde de linux ce serait sympa que tu nous dises comment faire un makefile correct ou comment compiler sans makefile
Promis on posteras un screen des qu'on aura qq chose de plus avancé
Marsh Posté le 20-06-2001 à 14:16:10
Mon projet actuel fonctionne sous Glow. Voici a quoi ressemble mon Makefile :
Code :
|
Marsh Posté le 20-06-2001 à 19:00:24
maintenant ça compile sans aucune erreur
mais et oui y'a un mais a l'execution du prog on a l'erreur suivante:
./prog: error while loading shared libraries: libglow.so: cannot load shared object file: No such file or directory
il s'agit du prog test de glow fournit dans le tut avec le makefile il compile bien et il fonctionne mais qd je crée un makefile ou que je le compile a la main le prog resultant et foireux!!!
j'en ai marre de ces erreurs je deviens fou
Les libraries sont pourtant bien installé!!!
Marsh Posté le 21-06-2001 à 08:46:54
tu as copie libglow.so.1.0.2 et libglow.a.1.0.2 dans le repertoire /usr/lib/ ??
ah oui, faut pas oublier (mais la apres c'est plus de la prog, c'est de l'unix) de definir des liens symboliques :
dans le repertoire /usr/lib/ :
ln -s -f libglow.so.1.0.2 libglow.so
ln -s -f libglow.a.1.0.2 libglow.a
Et comme ca les fichiers .so et .a sont crees (et seront donc trouves par ton programme), ils s'agit en fait de liens symboliques (ou d'alias si tu veux) vers les libraires "reelles" .so.1.0.2 et .a.1.0.2...
Marsh Posté le 21-06-2001 à 10:22:20
j'ai bien fait tout ça !!!! (chez moi ) mais y'a un autre pb c que la ou on bosse l'administrateur ne veut rien installer sur le reseau donc il a mis les lib en vrac sur un poste quelconque faudrait pouvoir utiliser les lib la ou elles sont (et sans lien symbolique sur ce poste!!! le but etant de faire tourner le prog sur n'importe quel poste du réseau!!)
mais bon si deja j'arrive a avoir un produit qui fonctionne chez moi je pourrais toujours essayer de negocier avec l'administrateur!!
en tout cas je vois pas pourquoi y'a cette erreur avec les lib et leur lien bien installé!!!!
Marsh Posté le 21-06-2001 à 10:28:35
et dans le Makefile (glowlflags), tu as rajoute dans la ligne de commande le repertoire ou sont installees les librairies ?
genre : -L/home/user/prog/glow/ ??
Marsh Posté le 15-06-2001 à 09:27:46
Quel ligne de commande je dois taper pour que le compilateur aille chercher les librairies au bon endroit ?
C'est loin d'etre évident !!
toute aide sera la bienvenue .