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; }
So when we try to assign it a value in the main function, the linker doesn't find the symbol and may result in an “unresolved external symbol” or “undefined reference”. The way to fix this error is to explicitly scope the variable using '::' outside the main before using it.
LNK2019 can occur when a declaration exists in a header file, but no matching definition is implemented. For member functions or static data members, the implementation must include the class scope selector. For an example, see Missing Function Body or Variable.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With