Ainsi, la tristement célèbre erreur est de retour. Le projet se plaint de ne pas trouver la méthode main () (c'est ce que l'erreur signifie, à droite).
Cependant, j'ai un principal et mon projet est un projet de console, comme il se doit. Cela a fonctionné avant, donc je sais que ce n'est pas ça.
De plus, le projet a trop de classes et de fichiers pour que je puisse tous les poster, donc je posterai toutes les classes dont vous avez besoin sur demande.
Il s'agit d'un jeu C++, OpenGL et SDL sur Visual Studio 2010. Ce n'est un problème d'aucune des bibliothèques, car cela fonctionnait bien avant qu'il ne montre soudainement et inexplicablement cette erreur de l'éditeur de liens.
EDIT: La méthode main ():
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH | GLUT_ALPHA);
glutCreateWindow("Game");
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
g = Game();
glutInitWindowSize(g.getScreenWidth(), g.getScreenHeight());
//glutPositionWindow(1280, 50);
// Callbacks
glutDisplayFunc(handleRedraw);
glutReshapeFunc(handleResize);
glutMouseFunc(handleMouseClicks);
glutPassiveMotionFunc(handleMouseOvers);
glutKeyboardFunc(handleKeyboardEvents);
glutTimerFunc(50, moveItemToInventory, 0);
glutMainLoop();
return 0;
}
SDL_main.h est inclus automatiquement à partir de SDL.h, vous obtenez donc toujours le méchant #define.
Ecrivez:
#include <SDL.h>
#undef main
Et cela devrait bien fonctionner
Une autre option serait en fait de définir votre propre main avec les paramètres habituels
int main(int argc, char *args[])
{
// Your code here
}
Cela devrait éliminer l'erreur.
Ensuite, si vous n'utilisez pas ces paramètres et que vous souhaitez également vous débarrasser de l'avertissement du compilateur, vous pouvez faire cette astuce dans votre fonction principale.
(void)argc;
(void)args;
Le coupable est probablement SDL_main.h
. Vérifiez que vous n'incluez pas ce fichier, il y a une méchante définition:
#define main SDL_main
#define SDL_MAIN_HANDLED
#include "SDL.h"