I've been trying to set up SDL in a 'clean' way such that header files and libraries are kept separate from Pelles C files. This will enable both to be upgraded easily without causing problems.
This applies to version 7.0 of Pelles C and SDL 1.2.15.
Here's what I did:
- Installed Pelles C 32 bit
- Dowloaded SDL Development libraries for Win 32 (http://www.libsdl.org/release/SDL-devel-1.2.15-VC.zip) and extracted to C:\SDL-1.2.15
- Dowloaded SDL source code and extracted to \temp then compiled \temp\src\main\win32\SDL_win32_main.c to target Win32 static library, file name SDLmain.lib. Put resulting SDLmain.lib in C:\SDL-1.2.15\lib\x86 overwriting original version
- Created a new project with 32 bit console application as the target
- In Project Options folders tab added C:\SDL-1.2.15\lib\x86 to list of Libraries search paths
- In Project Options folders tab added C:\SDL-1.2.15\include to list of Includes search paths
- In Project Options compiler tab checked 'Enable Microsoft Extensions'
- In Project Options linker tab added SDL.lib and SDLmain.lib to list of Library and object files (contents now kernel32.lib advapi32.lib delayimp.lib SDLmain.lib SDL.lib)
- Copied SDL.dll from C:\SDL-1.2.15\lib\x86 to project folder
- Removed all other copies of SDL.dll from my computer
- Added main.c to Project with code as follows:
#include <SDL.h>
int main( int argc, char* args[] ) {
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING );
//Quit SDL
SDL_Quit();
return 0;
}
Results of building:
Building main.obj.
Use <stdlib.h> instead of non-standard <malloc.h>
Building main.exe.
Done.
Just one warning which can be cured by a couple of simple edits if required (replacing malloc.h with stdlib.h), see
http://forum.pellesc.de/index.php?topic=2858.0Paul