Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[DEV]Je n'arrive pas a coder de l'opengl !
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Oct 05, 2005 1:21 pm    Post subject: [DEV]Je n'arrive pas a coder de l'opengl ! Reply with quote

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
View user's profile Send private message
Starch
Guru
Guru


Joined: 26 Feb 2003
Posts: 539
Location: Rennes, France

PostPosted: Wed Oct 05, 2005 1:29 pm    Post subject: Re: [DEV]Je n'arrive pas a coder de l'opengl ! Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Oct 05, 2005 1:39 pm    Post subject: Reply with quote

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
View user's profile Send private message
Starch
Guru
Guru


Joined: 26 Feb 2003
Posts: 539
Location: Rennes, France

PostPosted: Wed Oct 05, 2005 1:46 pm    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Oct 05, 2005 1:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Oct 05, 2005 2:02 pm    Post subject: Reply with quote

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

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
View user's profile Send private message
Starch
Guru
Guru


Joined: 26 Feb 2003
Posts: 539
Location: Rennes, France

PostPosted: Wed Oct 05, 2005 2:08 pm    Post subject: Reply with quote

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
View user's profile Send private message
vishnoo
Tux's lil' helper
Tux's lil' helper


Joined: 05 Jun 2005
Posts: 119
Location: Antony (France)

PostPosted: Wed Oct 05, 2005 2:15 pm    Post subject: Reply with quote

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
View user's profile Send private message
Anthyme
Guru
Guru


Joined: 25 Jun 2004
Posts: 498

PostPosted: Wed Oct 05, 2005 2:18 pm    Post subject: Reply with quote

ok merci bien vous 2, vous m'en avez appris pas mal et mis sur beaucoup de pistes :)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum