I had this problem for 2 days now. I'm learning SDL through Lazy Foo's tutorial, but I can't proceed further as IMG_Load doesn't seem to work. I tried setting it up like he says, but it just doesn't work. I put all the include files into include folder, and all the lib files into the lib folder. What I found is that there were x86 and x64 folders in the lib folder. When I tried x64 (because I have a 64-bit system)it all worked fine, CodeBlocks even told me suggestions (like when I wrote "img" it showed up a suggestion "IMG_Load" (which means the library got initalized?)), but when I come to compiling my code, this happens: http://puu.sh/3Eqa5.png . When I try with the x86 version, exact same error.
You also have to link to the .lib file, which you must not be doing.
Simply putting the .lib files in a directory is not enough. You also have to add the lib file names to your project settings so the linker knows to link to them.
I would be very surprised if the LazyFoo tutorials did not explain how to do this.
(these directions might not be 100% correct, but you should be able to figure it out)
-) Right click on your project in the solution explorer
-) Go to properties
-) Somewhere in the "linker" properties there's an "input" field
-) Add the necessary .lib filenames to that field.
-) Hit OK
EDIT: I just realized you said C::B --- for some reason I thought you were using VS. C::B is similar but it might not call it "solution explorer". Just find out where C::B puts your linker settings.
The error is telling you the linker could not find any definition for the IMG_Load function.
1) You are properly linking to the required library
2) The library has a definition for IMG_Load
Then you would not be getting this error.
So one of those 2 things must not be the case. I'm 99% sure the problem is with #1, but if you are SURE you are linking properly I suppose it's possible your lib is bad and isn't exporting IMG_Load like it needs to be, in which case I would recommend rebuilding the SDL_Image library from its source.
* WARNINGS: I don't remember if SDL requires extra_defines. I have an example of SDL elsewhere, not here. In case... add -D params for every extra_define required... example -DHAVE_MACRO to define HAVE_MACRO
Replace "path/to/SDL*/INCLUDES" with the path where include files of SDL* are actually stored
you can remove all \ and attach all to a single line.... I wrote it multilined in order to graphic reasons here.
I am not sure about the exact placement of -mwindows. If linking returns some error, try to change orders on parameters.... I have a project where I used SDL_Mixer together with Qt so I will be able to confirm you the right order when I come back to home