Bonjour,
j'essaye de compiler le code d'exemple présent dans la FAQ SDL avec Visual C++ Express mais je reçoit ce code d'exemple :
Voici le code que je compile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 1>Compiling... 1>main.cpp 1>Linking... 1>main.obj : error LNK2019: unresolved external symbol _atexit referenced in function "int __cdecl mainCRTStartup(int,char * * const)" (?mainCRTStartup@@YAHHQAPAD@Z)
J'ai créé un projet vide auquel je rajoute ce source. Ensuite dans les options, du linker, j'ai rajouté "SDL.lib SDLmain.lib user32.lib gdi32.lib advapi32.lib" dans Additional Dependencies, j'ai choisit de mettre "Windows (/SUBSYSTEM:WINDOWS)" dans SubSystem.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 #include <stdlib.h> #include <stdio.h> #include <SDL.h> #include <string> #pragma comment(lib, "OpenGL32.lib") #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDLmain.lib") #pragma comment(lib, "libirc.lib") #pragma comment( lib, "SDL_image.lib") #pragma comment( lib, "glew32.lib") #pragma comment( lib, "glut32.lib") int mainCRTStartup( int argc, char *argv[ ] ) { SDL_Surface *screen; if( SDL_Init( SDL_INIT_VIDEO ) == -1 ) { //printf( "Can't init SDL: %s\n", SDL_GetError( ) ); return EXIT_FAILURE; } atexit( SDL_Quit ); //SDL_Quit(); screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE ); if( screen == NULL ) { //printf( "Can't set video mode: %s\n", SDL_GetError( ) ); return EXIT_FAILURE; } SDL_Delay( 3000 ); return EXIT_SUCCESS; }
De plus, dans les options C++ du projet, j'ai mis "Multi-threaded DLL (/MD)" dans Runtime Library
Bien sur, j'ai installé la librairie SDL pour VC++ 6.0 et j'ai rajouté les chemin appropriée dans les options les répertoires pour les .lib et les .h
Cela fait plusieurs jours que j'essaye de compiler ce code (j'avait beaucoup d'autres erreurs que j'ai finit par résoudre, mais je n'arrive vraiment pas à comprendre celle-là...)
Merci d'avance pour votre aide.
Partager