Bonjour j'essaye depuis quelques jours d'intégrer la SDL_image 2.0.2 sur code blocks mais sans jamais y arriver, j'ai écumer pas mal de forums, tutoriels et vidéos. Je commence lentement a devenir fou....

le linkage semble toujours raté:

j'ai bien mis le /bin, le /include et le /lib dans les dossiers correspondant de ma SDL2.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
"undefined reference to 'IMG_Init' "
Dans le build options ==> linker settings j'ai bien mis:
  • libSDL2_image.dll.a
  • libSDL2_image.a


Puis dans mon Compiler settings ==> Search directories:
  • Pour le compiler :
    1. C:\Program Files (x86)\CodeBlocks\MinGW\lib
    2. C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\lib

  • pour le linker:
    1. C:\Program Files (x86)\CodeBlocks\MinGW\include
    2. C:\Program Files (x86)\CodeBlocks\SDL2-2.0.7\x86_64-w64-mingw32\include


Les dossiers/fichiers de SDL_images sont dans le dossier SDL2-2.0.7\x86_64-w64-mingw32 donc normalement je n'ai pas a les relinker manuellement.

Si ça peut aider voici mon code:
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
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
 
#include <SDL2/SDL.h>
 
#include <SDL2/SDL_image.h>
 
int main(int argc, char **argv)
{
    if (SDL_Init(SDL_INIT_VIDEO) != 0 )
    {
        std::cout << SDL_GetError() << std::endl;
        return -1;
    }
        /* Création de la fenêtre */
 
    IMG_Init(IMG_INIT_JPG);
    SDL_Event evenements;
    SDL_Window* maFenetre(0);
    bool finFenetre (false);
    SDL_Surface* image = IMG_Load("titile.JPG");
 
    maFenetre = SDL_CreateWindow("Ma premiere application SDL2",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,800,600,SDL_WINDOW_SHOWN);
 
    if( !maFenetre )
    {
        std::cout << SDL_GetError() << std::endl;
        SDL_DestroyWindow(maFenetre);
        SDL_Quit();
 
 
    }
 
    while (!finFenetre)
    {
        SDL_WaitEvent(&evenements);
        if(evenements.window.event == SDL_WINDOWEVENT_CLOSE)
        finFenetre = true;
    }
 
    IMG_Quit();
    SDL_DestroyWindow(maFenetre);
    SDL_Quit();
 
    return 0;
 
}