error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup, but this time it's NOT a Windows/Console problem!

c++, lnk2019, opengl, sdl

Solution

SDL_main.h is included automatically from SDL.h, so you always get the nasty #define.

Just write:

#include <SDL.h>
#undef main

And it should work fine

Problem

So, the infamous error is back. The project is complaining that it can't find the main() method (that's what the error means, right). However I do have a main, and my project is a Console project, as it should be. It worked before, so I know it's not that. Also, the project has too many classes and files for me to post them all, so I will post any classes you need by request. It's a C++, OpenGL and SDL game on Visual Studio 2010. It's not a problem of any of the libraries, as it was working fine before it suddenly and inexplicably showed this linker error. EDIT: The main() method: ``` 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; } ```

Original source

Related problems