Bug avec SDL2 : ld returns 1 exit status
Résolu
Fabio
-
Fabio -
Fabio -
J'essaye de faire tourner un début code basique sous SDL2 et voilà qu'il refuse de compiler.
Dans le "build log" (car je suis sous code blocks) il me dit "référence indéfinie vers" toutes mes fonctions SDL.
Qu'est-ce que ça veut dire ?
Code :
Buil log :
Dans le "build log" (car je suis sous code blocks) il me dit "référence indéfinie vers" toutes mes fonctions SDL.
Qu'est-ce que ça veut dire ?
Code :
#include <SDL2/SDL.h>
#include <stdio.h>
int main(int argc, char** argv)
{
/* Initialisation simple */
if (SDL_Init(SDL_INIT_VIDEO) != 0 )
{
fprintf(stdout,"Échec de l'initialisation de la SDL (%s)\n",SDL_GetError());
return -1;
}
SDL_Quit();
return 0;
}
Buil log :
g++ -o bin/Debug/Boxing obj/Debug/main.o obj/Debug/main.o : Dans la fonction « main » : /home/fabio/Documents/C/Boxing/main.cpp:8 : référence indéfinie vers « SDL_Init » /home/fabio/Documents/C/Boxing/main.cpp:10 : référence indéfinie vers « SDL_GetError » /home/fabio/Documents/C/Boxing/main.cpp:15 : référence indéfinie vers « SDL_Quit » collect2: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 0 second(s)) 1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
A voir également:
- Collect2: error: ld returned 1 exit status
- Bug chromecast - Guide
- Bug localisation snap ✓ - Forum Snapchat
- Bug family link - Forum Contrôle parental
- Savoir qui regarde notre localisation ? - Forum Snapchat
- Pourquoi la localisation Snap disparait de la SnapMap ? ✓ - Forum Snapchat
2 réponses
Salut Fabio,
Ce n'est pas un "bug" mais une erreur de paramétrage.
Tu as dû juste insérer le header dans le code, mais oublié de paramétrer ton projet pour lier l'exécutable à la bibliothèque SDL2.
D'abord vérifie que tu crées un projet Codeblocks de type "Console" (et en C à moins que tu veuilles vraiment faire du C++) et met ton code dedans.
Puis fais Project - Build options - et clique sur le nom du projet en haut à gauche de la boite de dialogue à la racine au dessus de Debug et Release (pour appliquer tes paramètres aux deux cibles de compilation).
Puis clique sur Linker settings - Link libraries - Add - tape "SDL2" (sans les guillemets)
valide toutes les boites, sauvegarde le projet et recompile pour voir.
Dal
P.S. : je pars du principe que tu es sous Linux au vu du "Build log" (les instructions seraient différentes sous Windows) et que tu as installé le paquet SDL2 développeur sur ta distribution Linux
Ce n'est pas un "bug" mais une erreur de paramétrage.
Tu as dû juste insérer le header dans le code, mais oublié de paramétrer ton projet pour lier l'exécutable à la bibliothèque SDL2.
D'abord vérifie que tu crées un projet Codeblocks de type "Console" (et en C à moins que tu veuilles vraiment faire du C++) et met ton code dedans.
Puis fais Project - Build options - et clique sur le nom du projet en haut à gauche de la boite de dialogue à la racine au dessus de Debug et Release (pour appliquer tes paramètres aux deux cibles de compilation).
Puis clique sur Linker settings - Link libraries - Add - tape "SDL2" (sans les guillemets)
valide toutes les boites, sauvegarde le projet et recompile pour voir.
Dal
P.S. : je pars du principe que tu es sous Linux au vu du "Build log" (les instructions seraient différentes sous Windows) et que tu as installé le paquet SDL2 développeur sur ta distribution Linux