[C] Problème de compilation OpenGL

Résolu/Fermé
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 11 sept. 2008 à 14:59
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 13 sept. 2008 à 13:59
Bonjour,

J'ai un petit problème de compilation d'une code en C avec OpenGL. Voici le code que j'ai trouvé tel quel sur le web :
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>

void joystick(unsigned int buttonMask, int x, int y, int z)
{
	printf("joy 0x%x, x=%d y=%d z=%d\n" , buttonMask, x, y, z);
}

void joyPoll(void)
{
	printf(" force\n" );
	glutForceJoystickFunc(); //Oblige GLUT à sonder le joystick en permanence
}

void menu(int value)
{
	switch(value)
	{
		case 1: // Premier cas on se sert du joystick de maniere normale
			glutJoystickFunc(joystick, 100);
			glutIdleFunc(NULL);
			break;
		case 2: // Second cas on désactive le joystick.
			glutJoystickFunc(NULL, 0);
			glutIdleFunc(NULL);
			break;
		case 3: // Oblige GLUT a sonder le joystick en permanence
			glutJoystickFunc(joystick, 0);
			glutIdleFunc(joyPoll);
			break;
	}
}

void display(void)
{
	glClear(GL_COLOR_BUFFER_BIT);
	glFlush();
}

void keyboard(unsigned char c, int x, int y)
{
	if (c == 27) exit(0);
}

int main(int argc, char **argv)
{
	glutInit(& argc, argv);
	glutCreateWindow(" joystick test" );
	
	glClearColor(0.29, 0.62, 1.0, 0.0);
	glutDisplayFunc(display);
	glutKeyboardFunc(keyboard);
	
	glutCreateMenu(menu);
	glutAddMenuEntry(" Active le joystick callback" , 1);
	glutAddMenuEntry(" Desactive le joystick callback" , 2);
	glutAddMenuEntry(" Force le sondage du joystick" , 3);
	glutAttachMenu(GLUT_RIGHT_BUTTON);
	
	glutMainLoop();
	
	return 0; /* ANSI C a besoin du retour d'un entier */
}


Je le compile avec ce Makefile (ce fichier est le fichier test2.c) :
CC=gcc

CFLAGS=
LDFLAGS=-mwindows -lopengl32 -lglu32 -g3 -lglut -lglut32 -gul -gl -glfw -lSDL -lmingw32 -lSDLmain


all: test test2


test: test.o
	$(CMP)

test2: test2.o
	$(CMP)



CMP=$(CC) -o $@ $^ $(LDFLAGS)

%.o: %.c
	$(CC) -o $@ -c $< $(CFLAGS)


Lors de l'exécution du make, voici le résultat :
gcc -o test2.o -c test2.c 

gcc -o test2 test2.o -mwindows -lopengl32 -lglu32 -g3 -lglut -lglut32 -gul -gl -glfw -lSDL -lmingw32 -lSDLmain

C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../libglut32.a(glut_event.o)(.text+0x319):glut_event.c: undefined reference to `glFinish@0'

C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../libglut32.a(glut_event.o)(.text+0x374):glut_event.c: undefined reference to `wglSwapBuffers@4'

................................................................. (et j'en passe ....)

collect2: ld returned 1 exit status

C:\Dev-Cpp\bin\make.exe: *** [test2] Error 1


Build failed. Exit value 2.


Je sais que c'est un problème de linkage, mais je n'arrive pas à trouver le problème .... je pense que je n'ai pas mis la bonne bibliothèque avec, mais tous les codes que je trouve sur le web ne sont pas compilables sur mon PC ...

Je précise que j'utilise seulement les bin de Dev-Cpp, et pas l'API en lui-même (je préfère le bloc note ... :D)


Le pire, c'est qu'un programme utilisant OpenGL que j'ai fais moi-même (sur la base d'un code de Dev-Cpp) compile et fonctionne parfaitement .....

Le but de tout ça serait d'intégrer un joystick dans mon programme.


En esspérant que quelqu'un à la réponse ....


merci et @Bientôt

2 réponses

vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
12 sept. 2008 à 13:15
Ou alors si quelqu'un a un code compilable ...
-1
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
13 sept. 2008 à 13:59
Problème résolu :
LDFLAGS=C:\Dev-Cpp\lib\libwinmm.a -mwindows -lopengl32 -lglu32 -mmsystem
Bonne journée
-1