c++ - error LNK2019: símbolo externo no resuelto_la principal referenciada en la función___tmainCRTStartup, pero esta vez NO es un problema de Windows/Console.
opengl sdl (4)
Por lo tanto, el error infame está de vuelta. El proyecto se queja de que no puede encontrar el método main () (eso es lo que significa el error, a la derecha).
Sin embargo tengo un main, y mi proyecto es un proyecto de consola, como debería ser. Funcionó antes, así que sé que no es eso.
Además, el proyecto tiene demasiadas clases y archivos para que yo pueda publicarlos todos, por lo que publicaré las clases que necesite por solicitud.
Es un juego de C ++, OpenGL y SDL en Visual Studio 2010. No es un problema de ninguna de las bibliotecas, ya que funcionaba bien antes de que de forma repentina e inexplicable mostrara este error de vinculador.
EDITAR: El método 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;
}
El culpable es probable que sea SDL_main.h
. Comprueba que no incluyas ese archivo, hay una definición desagradable allí:
#define main SDL_main
Otra opción sería definir su propio main con los parámetros habituales.
int main(int argc, char *args[])
{
// Your code here
}
Eso debería deshacerse del error.
Luego, si no usa esos parámetros y también quiere deshacerse de la advertencia del compilador, podría hacer ese truco en su función principal.
(void)argc;
(void)args;
SDL_main.h se incluye automáticamente desde SDL.h, por lo que siempre obtiene el #define desagradable.
Solo escribe:
#include <SDL.h>
#undef main
Y debería funcionar bien
#define SDL_MAIN_HANDLED
#include "SDL.h"