View previous topic :: View next topic |
Author |
Message |
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Oct 05, 2005 1:21 pm Post subject: [DEV]Je n'arrive pas a coder de l'opengl ! |
|
|
Bonjour !
j'ai codé un ptit programe :
Code: | #include <GL/glut.h>
#include <stdio.h>
int main(int argc, char** argv){
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
glEnable(GL_DEPTH_TEST);
glutInitWindowPosition(300,300);
glutInitWindowSize(500,500);
glutCreateWindow("Fenetre GLUT");
glClearColor(0.0,0.0,0.0,0.0);
glutMainLoop();
return(0);
} |
tout ce qu'il y a de plus simple et a la compilation ... pas moyen de faire marcher ça ...
Code: | $ gcc -o start main.c
main.c:18:2: warning: no newline at end of file
/tmp/ccKm2G9c.o(.text+0x1e): In function `main':
: undefined reference to `glutInit'
/tmp/ccKm2G9c.o(.text+0x2a): In function `main':
: undefined reference to `glutInitDisplayMode'
/tmp/ccKm2G9c.o(.text+0x36): In function `main':
: undefined reference to `glEnable'
/tmp/ccKm2G9c.o(.text+0x4a): In function `main':
: undefined reference to `glutInitWindowPosition'
/tmp/ccKm2G9c.o(.text+0x5e): In function `main':
: undefined reference to `glutInitWindowSize'
/tmp/ccKm2G9c.o(.text+0x6a): In function `main':
: undefined reference to `glutCreateWindow'
/tmp/ccKm2G9c.o(.text+0x92): In function `main':
: undefined reference to `glClearColor'
/tmp/ccKm2G9c.o(.text+0x97): In function `main':
: undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status |
Quelqu'un sait quoi faire ?????
(j ai bien sur glut d'installé !)
merci |
|
Back to top |
|
|
Starch Guru
Joined: 26 Feb 2003 Posts: 539 Location: Rennes, France
|
Posted: Wed Oct 05, 2005 1:29 pm Post subject: Re: [DEV]Je n'arrive pas a coder de l'opengl ! |
|
|
Anthyme wrote: |
Code: | $ gcc -o start main.c
|
|
Code: | $ gcc -o start main.c -lglut
|
? _________________ - Vous aurez beau dire... Y'a pas qu'd'la pomme... Y'aurait pas aussi d'la betterave ?
- Si, y'en a aussi |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Oct 05, 2005 1:39 pm Post subject: |
|
|
humm pas mieu ^^ ... même pire lol ^^ :
Code: | /tmp/ccVhDZNj.o(.text+0x36): In function `main':
: undefined reference to `glEnable'
/tmp/ccVhDZNj.o(.text+0x92): In function `main':
: undefined reference to `glClearColor'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPixelStorei'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glBitmap'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluErrorString'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPopAttrib'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glMapGrid2f'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glRotatef'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glEvalMesh2'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glFinish'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glVertex3f'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXQueryExtension'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glNormal3fv'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluNewQuadric'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glViewport'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glVertex3fv'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glBegin'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glDrawBuffer'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXMakeCurrent'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluQuadricDrawStyle'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXQueryExtensionsString'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glVertex2f'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXChooseVisual'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluCylinder'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glGetError'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glGetIntegerv'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPushAttrib'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXDestroyContext'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPopMatrix'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXWaitX'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXGetProcAddressARB'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXQueryVersion'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glGetString'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluQuadricNormals'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXGetClientString'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPushMatrix'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glNormal3f'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `gluSphere'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glPolygonMode'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glMap2f'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glScalef'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glReadBuffer'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXIsDirect'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXSwapBuffers'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glTranslatef'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXCreateContext'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glXGetConfig'
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.6/../../../libglut.so: undefined reference to `glEnd'
collect2: ld returned 1 exit status
|
Merci quand meme ^^
d'autres idées ? ^^ |
|
Back to top |
|
|
Starch Guru
Joined: 26 Feb 2003 Posts: 539 Location: Rennes, France
|
Posted: Wed Oct 05, 2005 1:46 pm Post subject: |
|
|
Tu as déjà fait du C ?
Parce que visiblement tu n'as aucune idée de comment on utilise une librairie.
Tu ne linkes pas avec la librarie GL alors forcément.
Code: |
gcc -o start main.c -lglut -lGL
|
_________________ - Vous aurez beau dire... Y'a pas qu'd'la pomme... Y'aurait pas aussi d'la betterave ?
- Si, y'en a aussi |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Oct 05, 2005 1:54 pm Post subject: |
|
|
A vrai dire j ai deja fait du C"assisté" MS Visual C++ ... donc en fait je ne connais pas trop les histoire de liens a part dans les include ...
mais je crois que grace a toi j'ai compris des ptit truc en plus ^^
J'ai tenté un ptit
Code: | gcc -o start main.c -lglut -lGL -lGLU |
et la ca passe juste avec un warning :
main.c:18:2: warning: no newline at end of file
d'ailleur si tu sait comment retirer ce warning, je l'ai dans tous mes prog en C ...
Sinon pour la ptite histoire je devellopait sous linux avec eclipse et le mod C/C++ mais il n'a pas reussi a gerer la compilation seul ... c'est d'ailleur bien dommage |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Oct 05, 2005 2:02 pm Post subject: |
|
|
tiens je viens de fouiller un peu eclipse et j ai trouver ou il met ses option de base il met ca : -O0 -g3 -Wall -c -fmessage-length=0 (c'est assez inconnue pour moi ^^)
j ai rajouter les librairie et ca passe ...
bon dans les 2 cas l'appli marche pas ... lol ^^
Code: | GLUT: Warning in start: The following is a new check for GLUT 3.0; update your code.
GLUT: Fatal Error in start: redisplay needed for window 1, but no display callback. |
mais je vais regarder ça ... |
|
Back to top |
|
|
Starch Guru
Joined: 26 Feb 2003 Posts: 539 Location: Rennes, France
|
Posted: Wed Oct 05, 2005 2:08 pm Post subject: |
|
|
Visiblement, le compilateur veut un retour chariot à la fin du fichier.
Je te conseille de compiler avec -Wall -Wextra (avec gcc 4).
Je te conseille aussi de ne pas compiler à la mail. Tu peux te faire un Makefile pour te favoriser la tache
Code: |
CC=gcc
CFLAGS="-g -Wall -Wextra"
LDFLAGS="-L<repertoire_non_standard_de_libs> -L<un_autre>"
LIBS="-lglut -lGL"
SOURCES=$(shell ls *c)
OBJS=$(suffix .c,.o, $(SOURCES))
BINNAME=start
$(BINNAME): $(OBJS)
<tab>$(CC) -o $@ $< $(LDFLAGS) $(LIBS)
%.o: %c
<tab>$(CC) $(CFLAGS) -o $@ $<
|
(note, c'est improvisé sur l'heure, donc pas forcément très juste)
Si ton projet tend à grossir, tu peux utiliser les autotools (Autoconf / Automake / Libtool) de gnu, ou mieux si ça existe (ça doit pas être dur). L'avantage, c'est qu'il te fait une bonne part du boulot. Le désavantage, c'est que souvent il ne fait pas ce que tu veux. _________________ - Vous aurez beau dire... Y'a pas qu'd'la pomme... Y'aurait pas aussi d'la betterave ?
- Si, y'en a aussi |
|
Back to top |
|
|
vishnoo Tux's lil' helper
Joined: 05 Jun 2005 Posts: 119 Location: Antony (France)
|
Posted: Wed Oct 05, 2005 2:15 pm Post subject: |
|
|
Anthyme wrote: |
Code: | GLUT: Warning in start: The following is a new check for GLUT 3.0; update your code.
GLUT: Fatal Error in start: redisplay needed for window 1, but no display callback. |
mais je vais regarder ça ... |
D'après le warning tu es obligé de rajouter un
Code: | glutDisplayFunc(my_display_func); | dans ton main et de faire au moins une fonction callback de display (même pipo) pour que ça marche
Code: | void my_display_func (void) {} |
EDIT: dans le makefile au dessus doit manquer un -lGLU pour les libs |
|
Back to top |
|
|
Anthyme Guru
Joined: 25 Jun 2004 Posts: 498
|
Posted: Wed Oct 05, 2005 2:18 pm Post subject: |
|
|
ok merci bien vous 2, vous m'en avez appris pas mal et mis sur beaucoup de pistes |
|
Back to top |
|
|
|