błąd LNK2019: nierozwiązany zewnętrzny symbol _main, do którego odwołuje się funkcja _ _ _ tmainCRTStartup, ale tym razem NIE jest to problem z systemem Windows/konsolą!


Więc niesławny błąd powrócił. Projekt narzeka, że ​​nie może znaleźć metody main () (właśnie to oznacza błąd).
Mam jednak główny, a mój projekt jest projektem konsoli, tak jak powinien. To działało w przeszłości, więc wiem, że tak nie jest.
Ponadto w projekcie jest zbyt wiele klas i plików, żebym mógł je wszystkie hostować, więc zgodnie z życzeniem opublikuję wszystkie potrzebne zajęcia.
To jest gra C ++, OpenGL i SDL na Visual Studio 2010. Nie jest to problem z żadną z bibliotek, ponieważ działała dobrze, zanim nagle i niewytłumaczalnie pokazała ten błąd konsolidatora.
EDYCJA: main () metoda:
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;
}

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

SDL_main.h jest dołączany automatycznie z SDL.h, więc zawsze otrzymujesz nieprzyjemny #define.
Tylko napisz:
#include <SDL.h>
#undef main

I to powinno działać dobrze
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Inną opcją jest zdefiniowanie własnego pliku głównego z normalnymi parametrami
int main(int argc, char *args[])
{
// Your code here
}

To powinno wyeliminować błąd.
Następnie, jeśli nie używasz tych parametrów, a także chcesz pozbyć się ostrzeżenia kompilatora, możesz wykonać tę sztuczkę w swojej funkcji głównej.
(void)argc;
(void)args;
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Winowajcą jest najprawdopodobniej
SDL_main.h
. Upewnij się, że nie dołączasz tego pliku, jest tam nieprzyjemna definicja:
#define main SDL_main

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się