Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
679 connectés 

  FORUM HardWare.fr
  Programmation

  [c++]Comment compiler un prog opengl+gnut sous linux ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[c++]Comment compiler un prog opengl+gnut sous linux ?

n°39904
drakkeng
Posté le 15-06-2001 à 09:27:46  profilanswer
 

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 .

mood
Publicité
Posté le 15-06-2001 à 09:27:46  profilanswer
 

n°39906
minusplus
Posté le 15-06-2001 à 09:35:29  profilanswer
 

ben il sait où elles sont les libs, kess tu raconte ?

n°39908
drakkeng
Posté le 15-06-2001 à 09:38:19  profilanswer
 

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 .

n°39910
minusplus
Posté le 15-06-2001 à 09:42:08  profilanswer
 

bon, j'ai pas tout compris mais :
pour spécifier le chemin des libs : -L path
pour spécifier une lib : -l lib

n°39912
drakkeng
Posté le 15-06-2001 à 09:46:04  profilanswer
 

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 .

n°39917
minusplus
Posté le 15-06-2001 à 09:53:05  profilanswer
 

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 ?

n°39934
drakkeng
Posté le 15-06-2001 à 10:13:05  profilanswer
 

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]

n°39937
tgrx
My heart is pumping for love
Posté le 15-06-2001 à 10:14:41  profilanswer
 

Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies... :p
 
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 :
  1. CC= g++
  2. OUTPUT= programme
  3. OBJECTS= main.o # et plus si plusieurs fichiers .cpp
  4. GLUTLFLAGS= -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps
  5. all:
  6.         $(CC) -o $(OUTPUT) $(OBJECTS) $(GLUTLFLAGS)
  7. main.o: main.cpp
  8.         $(CC) $(CFLAGS) -c main.cpp
  9. # reecrire cette derniere commande pour tous les fichiers .cpp
  10. clean:
  11.         rm -f *.o $(OUTPUT) *~


 
 
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]

n°39941
drakkeng
Posté le 15-06-2001 à 10:16:46  profilanswer
 

tgrx a écrit a écrit :

Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies... :p
 
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 :
  1. CC= g++
  2. OUTPUT= programme
  3. OBJECTS= main.o # et plus si plusieurs fichiers .cpp
  4. GLUTLFLAGS= -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps
  5. all:
  6.         $(CC) -o $(OUTPUT) $(OBJECTS) $(GLUTLFLAGS)
  7. main.o: main.cpp
  8.         $(CC) $(CFLAGS) -c main.cpp
  9. # reecrire cette derniere commande pour tous les fichiers .cpp
  10. clean:
  11.         rm -f *.o $(OUTPUT) *~


 
 
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
 
 




 
trop fort merci beaucoup tu me sauves la vie si ça marche ,je test cette apres midi .

n°39964
minusplus
Posté le 15-06-2001 à 10:58:08  profilanswer
 

tgrx a écrit a écrit :

Exactement, tu dois te taper la grosse ligne enorme avec les liens vers toutes les librairies... :p  
 
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 :
  1. CC= g++
  2. OUTPUT= programme
  3. OBJECTS= main.o # et plus si plusieurs fichiers .cpp
  4. GLUTLFLAGS= -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps
  5. all:
  6.         $(CC) -o $(OUTPUT) $(OBJECTS) $(GLUTLFLAGS)
  7. main.o: main.cpp
  8.         $(CC) $(CFLAGS) -c main.cpp
  9. # reecrire cette derniere commande pour tous les fichiers .cpp
  10. clean:
  11.         rm -f *.o $(OUTPUT) *~

 
 
 
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
 
 




y'a besoin du -L /usr/X11R6/lib ? y'a pas des symlinks dans /usr/lib/ ?

mood
Publicité
Posté le 15-06-2001 à 10:58:08  profilanswer
 

n°39966
tgrx
My heart is pumping for love
Posté le 15-06-2001 à 11:01:27  profilanswer
 

En tout cas chez moi ca ne fonctionne pas dans le -L/usr/X11R6/lib

n°39970
minusplus
Posté le 15-06-2001 à 11:12:33  profilanswer
 

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/ ! :D

n°40213
drakkeng
Posté le 15-06-2001 à 18:30:37  profilanswer
 

super merci a tout les deux ,ça marche enfin !!!!!!!!!

n°41025
drakkeng
Posté le 19-06-2001 à 16:49:30  profilanswer
 

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

n°41027
minusplus
Posté le 19-06-2001 à 16:52:19  profilanswer
 

c koi MUI ?

n°41097
tgrx
My heart is pumping for love
Posté le 19-06-2001 à 18:03:18  profilanswer
 

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 :??:

n°41118
drakkeng
Posté le 19-06-2001 à 18:21:57  profilanswer
 

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) ?

n°41123
tgrx
My heart is pumping for love
Posté le 19-06-2001 à 18:29:07  profilanswer
 

Es-tu sur que MUI est installee sur ton systeme ? :eek:
Sur le mien (pourtant j'ai installe 95% des packages des 7 CD de la Suse 7.1 :D), 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... :)

n°41127
tgrx
My heart is pumping for love
Posté le 19-06-2001 à 18:34:17  profilanswer
 

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 ! :)

n°41139
drakkeng
Posté le 19-06-2001 à 19:04:29  profilanswer
 

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]

n°41261
drakkeng
Posté le 20-06-2001 à 11:00:18  profilanswer
 

j'arrive pas a installer GLOW sous la mandrake 8 !!
le makefile ne marche pas  
 
help
.
PS: bientot un screen du jeux !!

n°41270
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 11:08:28  profilanswer
 

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

n°41278
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 11:14:51  profilanswer
 

D'ailleurs tu as quoi comme message d'erreur avec le Makefile ??

n°41284
drakkeng
Posté le 20-06-2001 à 11:34:07  profilanswer
 

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

n°41289
drakkeng
Posté le 20-06-2001 à 11:40:07  profilanswer
 

ça marche maintenant !!!
mais je fais comment pour compiler ?

 

[edit]--Message édité par Drakkeng--[/edit]

n°41290
BENB
100% Lux.
Posté le 20-06-2001 à 11:41:34  profilanswer
 

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...

n°41296
drakkeng
Posté le 20-06-2001 à 11:51:09  profilanswer
 

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  ?

n°41299
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 11:54:00  profilanswer
 

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...

n°41310
drakkeng
Posté le 20-06-2001 à 12:24:09  profilanswer
 

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 ?

n°41316
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 12:30:03  profilanswer
 

Je peux toujours te filer les librairies compilees si tu veux...
 
Tu veux pas plutot poster les erreurs que tu recois du Makefile ?? :sarcastic:

n°41318
drakkeng
Posté le 20-06-2001 à 12:36:56  profilanswer
 

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 ?? :sarcastic:




 
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]

n°41321
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 12:43:14  profilanswer
 

Ca veut dire quoi : "le make tourne en boucle"
 
Que le programme deraille, ou juste que c'est lent ??

n°41323
drakkeng
Posté le 20-06-2001 à 12:49:17  profilanswer
 

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.

n°41325
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 12:57:57  profilanswer
 

et tu veux pas les poster ces messages ?

n°41331
Replouf66
Posté le 20-06-2001 à 13:24:44  profilanswer
 

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é :benetton:

n°41349
tgrx
My heart is pumping for love
Posté le 20-06-2001 à 14:16:10  profilanswer
 

Mon projet actuel fonctionne sous Glow. Voici a quoi ressemble mon Makefile :
 

Code :
  1. # Makefile
  2. # This file allows an administrator of another unix system to "install" 
  3. # prog on his/her system.
  4. # MACRO DEFINITIONS
  5. # Note ... the comments in this section have been added to make it
  6. # clear to you what each macro is for ... they are NOT something that
  7. # should be included in YOUR makefiles.  Your comments should be aimed
  8. # at helping a user use YOUR makefile to compile YOUR product.
  9. # The CC macro is used to indicate which compiler to use.
  10. # Some folks may use g++, or some other compiler ... this allows you
  11. # to write the rules and then have the installer specify the appropriate
  12. # compile tool.
  13. CC = g++
  14. OUTPUT = prog
  15. # The OBJECTS macro indicates all the .o files necessary to "build
  16. # your executable ... to simplify later lines
  17. OBJECTS= main.o display.o
  18. # The LFLAGS macro is used to tell the compiler to use other libraries.
  19. # We are defining it to include the math library, because calls are
  20. # made to math functions contained there.  YOU ONLY USE THE -lm ON
  21. # THIS LINE WHEN YOU NEED TO USE FUNCTIONS FROM THE MATH LIBRARY!!
  22. # Note ... the macro may be empty. I.e. just
  23. GLUTLFLAGS = -lglut -lGLU -lGL -L/usr/X11R6/lib -lX11 -lXmu -lm -lxmps
  24. GLOWLFLAGS = $(GLUTLFLAGS) -lglow
  25. # Like the OBJECTS macro, the HEADERS macro is used to save typing
  26. # later.
  27. # You MAY find that this is NOT appropriate in all cases ...
  28. # generally we can make use of it.
  29. HEADERS =
  30. # The CFLAGS macro is used to indicate flags for the compiler.
  31. # Eg. you MAY want to put '-g' on this line to generate symbol table
  32. # information so that you can use the 'ladebug' debugger to view your
  33. # program in execution, or you could use the '-O' option to do
  34. # optimized compilation, etc.  Again, as with other macros, it may
  35. # be empty.
  36. CFLAGS = 
  37. # This ends the MACRO DEFINITIONS SECTION
  38. # DEPENDENCIES AND RULES SECTION
  39. # This next section contains groups of lines that look like:
  40. #
  41. # target: dependencies
  42. #       rules(s) or action(s)
  43. #
  44. # Note that each group has a line that starts on the left margin
  45. # followed by one or more lines that begin with a TAB
  46. # This is VERY IMPORTANT ... THE RULES MUST START WITH A TAB!!!!
  47. #
  48. # The dependencies list the files that the target DEPENDS on,
  49. # the rules tell how to (re)construct the target.
  50. #
  51. # Where ever you see a $(macro_name), the 'make' utility makes a
  52. # text substitution, using the Right Hand Side of the macro
  53. # definitions from the above section.
  54. #
  55. # Compiling source code to create the object files
  56. all: $(OBJECTS)
  57. $(CC) -o $(OUTPUT) $(OBJECTS) $(GLOWLFLAGS)
  58. main.o: main.cpp
  59. $(CC) $(CFLAGS) -c main.cpp
  60. display.o: display.h display.cpp
  61. $(CC) $(CFLAGS) -c display.cpp

n°41458
Replouf66
Posté le 20-06-2001 à 19:00:24  profilanswer
 

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  :crazy:  :pt1cable:  
Les libraries sont pourtant bien installé!!!

n°41554
tgrx
My heart is pumping for love
Posté le 21-06-2001 à 08:46:54  profilanswer
 

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... :)

n°41583
Replouf66
Posté le 21-06-2001 à 10:22:20  profilanswer
 

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é!!!!

n°41596
tgrx
My heart is pumping for love
Posté le 21-06-2001 à 10:28:35  profilanswer
 

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/ ??

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c++]Comment compiler un prog opengl+gnut sous linux ?

 

Sujets relatifs
[mandrake8] comment installer Opengl et GLUT ?[C++] OpenGL
Equivalence des libraries turbo C / Linux[C++] je cherche un moteur 3d libre sous linux
compiler du javascript......??!.?bon sitre avec forum pour prog windows?????
prog windows marche pas sous win2K mais marche sous win98, why??? HELPProg sous C++. Demande conseil. Novice.
A tous les programmeurs 3D, sbires de Windows ou du consortium OpenGL![DirectX] Incompatibilité de mon prog avec les GeForce, pourquoi??
Plus de sujets relatifs à : [c++]Comment compiler un prog opengl+gnut sous linux ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR