Bonjours,
Je vous explique rapidement le problème :
Nous sommes 3, et on est de faire un jeu de ping pong en 3D.
Pour la partie Graphique, on utilise Opengl, GLUT et SDL pour le son
Pour la partie physique j'utilise ODE .
Pour le moment tout marche séparément.
Quand je dit partie graphique, c'est simplement une table, une raquette, des gradins autour avec un peu de mapping, mais aussi des sous-fenêtres un menu, la gestion du son (écouter des mp3, changer de mp3...)
Pourquoi avoir fait en 2parties, tout simplement car de mon coté, j'ai essayé de faire la partie physique avec ODE (plusieurs posts sur le forum d'ailleurs ^^), et malheureusement, ça ne marche que sous cygwin (sur le site : Platform: msvc, msvc-dll or cygwin.). Donc de mon coté j'ai mis pas mal de temps, à déjà essayer de l'installer ... On a donc parallélisé le travail, et mes 2 autre équipiers on travaillé sur la partie graphique, sous devcpp.
Pour le moment ça a toujours bien marché, quand ils avançaient pas mal sur le coté graphique, je prenais ce qu'ils avaient fait et je le rajoutais dans mon prog sous cygwin.
Mais depuis peu, j'ai essayé et là ça ne marche plus. (depuis qu'ils utilisent les sous-fenêtre et le son=> je ne sait pas du tout si il y a un rapport).
Ils utilisent Devcpp v.4.9.9.2 avec en option de compilation :
Sous Devcpp aucun problème, ça marche ça crée bien un exécutable, tout est parfait.-lopengl32
-lglut32
-lglu32
-lmingw32
-lSDLmain
-lSDL
-lSDL_mixer
Par contre quand j'essaie sou cygwin : c'est le drame. J'arrive cependant à compiler, mais le linkage ne marche pas du tout.
Pour compiler et linker j'utilise :
Sachant que j'ai aussi essayé un très grand nombre de combinaisons de librairies, j'ai aussi essayé avec -Wall -pedantic en option de compilation et link
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 gcc -c PinGl.cpp tgaload.cpp (ou g++) gcc -o prog.exe PinGL.o tgaload.o -l glut32 -l glu32 -l opengl32 -l sdl -l sdl_mixer -l sdl_main
Tout le temps la même erreur :
J'ai eu beau faire beaucoup de recherche (notament dans le FAQ ou il y a un cas semblable) mais rien n'y a fait./usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o).text+0xab) : undefined reference to `_WinMain@16`
Voici quand même les include utilisées :
Ainsi qu'une partie le main ://#include <windows.h> //Headers necessaires
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//#include <gl\gl.h>
//#include <gl\glu.h>
#include <gl\glaux.h>
#include <gl\glut.h>
#include <SDL\SDL.h>
#include <SDL\SDL_mixer.h>
#include "tgaload.h"
Désolé si il y a beaucoup d'information, mais je veux être sur d'avoir tout dit, histoire de ne pas passer à coté de quelquechose.int main ( int argc, char** argv )
{
glutInit ( &argc, argv );
glutInitDisplayMode ( GLUT_DEPTH | GLUT_RGBA | GLUT_DOUBLE );
glutInitWindowPosition (0,0);
glutInitWindowSize ( 500, 500 );
winMain=glutCreateWindow ( "Ping Pong 3D" );
glutFullScreen ( );
init ();
glutDisplayFunc ( display );
glutReshapeFunc ( reshape );
glutCreateMenu(selectMenu); //On crée le menu
glutAddMenuEntry("Revenir au menu",0);
glutAddMenuEntry("Options",1);
glutAddMenuEntry("Quitter",2);
glutKeyboardFunc ( keyboard ); //Gère les touches du clavier
glutMouseFunc ( souris ); //Gère le clic de la souris
glutPassiveMotionFunc( depsouris ); //Gère le déplacement de la souris
glutSpecialFunc ( arrow_keys ); //Gère les flèches du clavier
glutIdleFunc ( idle ); //Fonction à appeler quand il n'y a rien à faire
winOption = glutCreateSubWindow (winMain,(int)(rapportx*200),(int)(rapporty*75),(int)(rapportx*880),(int)(rapporty*650)); //On crée la sous fenetre pour le menu Option et Crédits
init2 ();
glutSetWindow(winOption);
glutHideWindow(); //On cache la sous fenetre au départ
glutDisplayFunc (subDisplay);
glutReshapeFunc (subReshape);
if(SDL_Init(SDL_INIT_AUDIO)<0)
printf("Erreur SDL Init\n");
glutMainLoop( );
return 0;
}
MERCI beaucoup pour votre aide, et je suis ouvert à toutes suggestions, ou pistes ^^
Romain
Partager