begin process at 2012 05 30 08:36:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

SDL : linker error


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SDL : linker error

lundi 18 avril 2005 à 23:47:20 | SDL : linker error

bigben89

Ca fais à peine quelques mois que j'fais de la programmation (en C) et j'aimerais
faire un peu de 2d et de 3d avec SDL.
Je regarde des tutoriaux sur SDL, j'essaye de compiler un programme donné en
exemple et il me met :

linker error : undefined reference to 'SDL_MapRGB'
linker error : undefined reference to 'SDL_FillRect'
...
linker error : undefined reference to 'SDL_FreeSurface'
linker error : undefined reference to 'WinMain@16'

C'est quoi le blème : problème avec les librairies, ou autre chose ??!!
Ca m'énerve

Programme :

#include <SDL/SDL.h>
#include <stdio.h>
#include <stdlib.h>

// Surfaces et rectangle
SDL_Rect rect;
SDL_Surface *Screen, *rectangle;

// Fonction d'affichage
void affichage()
{
   // Coloration des surfaces
   SDL_FillRect(rectangle, NULL,
      SDL_MapRGB(Screen->format, 255, 0, 0));
   SDL_FillRect(Screen, NULL, 0);

   // Définition de la zone à l'écran
   rect.x = (Screen->w / 2) - (rect.w / 2);
   rect.y = (Screen->h / 2) - (rect.h / 2);
   rect.w = Screen->w / 2;
   rect.h = Screen->h / 2;

   // Blit de la surface à l'écran et affichage
   SDL_BlitSurface(rectangle,NULL,Screen,&rect);
   SDL_Flip(Screen);
}

int main (int argc, char **argv)
{
   // Initialisation de SDL
   if (SDL_Init (SDL_INIT_VIDEO) < 0) {
      fprintf (stderr, "Erreur d'initialisation de SDL: %s\n",
         SDL_GetError ());
      return 1;
   }
   atexit (SDL_Quit); // Pour quitter proprement

   // Initialisation de SDL_Video
   Screen = SDL_SetVideoMode (640, 480, 16, SDL_SWSURFACE|
      SDL_DOUBLEBUF);
   if (Screen == NULL) {
      fprintf (stderr, "Erreur d'init du mode video: %s\n",
         SDL_GetError ());
      return 2;
   }

   // Allocation de la surface (pour l'instant vide)
   rectangle = SDL_CreateRGBSurface(SDL_SWSURFACE,
      320, 240, 32,
      0, 0, 0, 0);

   // Titre de fenêtre
   SDL_WM_SetCaption ("Première appli SDL", NULL);

   // Boucle infinie
   while (/*true*/1)
   {
      SDL_Event event; // Fermer la fenêtre proprement
      if (SDL_PollEvent (&event) && event.type==SDL_QUIT)
         break;
      affichage(); // Mise à jour de l'écran
   }

   // Libération de la surface rectangle
   SDL_FreeSurface(rectangle);
   return 0;
}

mardi 19 avril 2005 à 00:37:27 | Re : SDL : linker error

mad_love_disease

le linker fait le lien entre ton code cpp et la library SDL. Toutes les fonctions de la SDL que tu utilises sont précompilées dans cette derniere library. Le linker te fais des erreurs car tu n'as pas renseigner le compilo sur les library; pour cela, il faut que tu donnes le chemin de la library au compilo:

Sous visual: project->settings (ou ALT F7) onglets link.
Sous dev cpp: ALT P ou options du projets.

cherche un fichier du style libSDL.lib, enfin un point lib ou un .a, et link le.

Ca devrait fonctionner.

Mad_Love_Disease
 
mardi 19 avril 2005 à 14:53:09 | Re : SDL : linker error

bigben89

Ca marche déja mieux :

J'ai plus les "undefined reference to 'SDL..."
Problème : il me raffiche
[linker error] : undefined reference to 'WinMain@16'
[build error] [programme.exe] Error 1

mardi 19 avril 2005 à 15:08:18 | Re : SDL : linker error

mad_love_disease

euh, et bien la, on a affaire à un probleme d'adresse... J'ai deux questions pour toi:
Quelle compilo utilises tu?
Est ce un .lib ou un .a que tu as utilisé??



Mad_Love_Disease
mardi 19 avril 2005 à 21:53:55 | Re : SDL : linker error

bigben89

Ben, j'utilise Dev C++, et j'ai créé un projet auquel j'ai lié SDL.lib
mercredi 20 avril 2005 à 02:55:04 | Re : SDL : linker error

mad_love_disease

et bien le probleme vient de la ;-(
En effet les library .lib sont normalisés pour Visual C++ (et oui, c la ...)

Il te faut la library en .a

Pour cela, deux solutions:

soit tu la trouves sur le net ( par ex: [ Lien ])
regardes dans le dossier lib

soit tu utilises l'utilitaire reimp, qui a été fait pour. Il transforme les .lib en .a
Il se trouve dans les tools de MinGW

voila, j'espere que cela va t'aider!!

Mad_Love_Disease

mercredi 20 avril 2005 à 15:30:16 | Re : SDL : linker error

bigben89

J'ai lié le fichier "libSDL.a" au programme, maintenant il m'affiche des tonnes d'erreurs :
Presque une bonne centaine de [linker error] undefined reference to ... !!!
D'accord, c'est pas les mêmes qu'avant, mais c'est génant quand même !
Je commence tout juste à vouloir faire de la SDL et ca arrête pas de déconner
Ca me gave !
mercredi 20 avril 2005 à 16:06:13 | Re : SDL : linker error

mad_love_disease

mince, ca ne doit pas etre la bonne lib que je t'ais filé.
Tente la seconde solution, a savoir utilisé reimp pour convertir ton ancienne lib SDL.lib en SDL.a. telecharge le fichier:
[ Lien ]

dans le dossier bin il y a reimp.exe

sous une console windows tape reimp.exe SDL.lib
et pis il te fera le bon SDL.a

j'espere que cela va fonctionner

Mad_Love_Disease
mercredi 20 avril 2005 à 17:15:15 | Re : SDL : linker error

bigben89

Nouveau problème !
Dans l'invité de commandes, je tape : reimp.exe SDL.lib
Résultat : reimp.exe : dlltool: No such file or directory


samedi 30 avril 2005 à 14:31:45 | Re : SDL : linker error

mad_love_disease

yo, desolé pour l'oubli

alors, tu dezippe tout le zip que je t'ai filler et SDL.lib dans C:
tu vas dans l'invite de commandes et tu tapes: reimp.exe SDL.lib

normalement ca tu l'as deja fait, si ca ne marche pas, tu m'envoie SDL.lib à mon adresse mail mad_love_disease@hotmail.com et je te ferais ca,

desolé pour le retard......

Mad_Love_Disease


1 2

Cette discussion est classée dans : rect, rectangle, sdl, screen, linker


Répondre à ce message

Sujets en rapport avec ce message

probleme de compilation SDL [ par darmoor ] Je suis dsl , le sujet doit etre souvent demandé mais j'ai deja cherché sur google et j'ai pas encore trouvé ce qu'il faut. Bon alors j'ai commencé a SDL conditions affichage image [ par MattCand ] Bonjour à tous, je suis débutant je cherche un code SDL qui, pour un paramètre donné, va afficher la bonne image. Je me suis basé sur le code SDL de b Probleme avec la librairie sdl et code::blocks [ par BencoAndCo ] Bonjour, J'ai un problème avec la lib sdl et code::blocks quand je compile le prog suivant : #include #include #include int main(int argc, ch Problème pour calculer le H pour l'A star ( * ) [ par jedinos ] Bonjour à tous ! [url=http://www.siteduzero.com/tutoriel-3-34333-le-pathfinding-avec-a.html]Dans ce tuto du pathfinding A star[/url] , l'auteur ne no Mettre à jour une fenêtre SDL [ par asprog ] Bonjour; je me suis chargée de faire un jeu de casse brique sous C++ en utilisant des classes que je dois les créer(orienté objet) ainsi que la bibl probleme de pointeur avec SDL_Rect [ par Jackyzgood ] Bonjour à tous !Je n'ai aucun soucis quand j'utilise des pointeurs sur des variables, ou sur des tableaux, mais je n'arrive pas à utiliser les pointeu [SDL] Fenetre qui s' affiche et disparait aussitot [ par jonezy ] Bonjour Je debute en programmation, j'ai telechargé ce code qui est cencé etre un jeu de serpent avec SDL. Quand je l'execute la fenêtre apparaît et SDL PB [ par asse63530 ] slt je suis en  train de faire un jeu en C sdl voila j'ai un vaisseau et je dois tirer sur de smétéorite des qu'une météorite touche le vaisseau une b [Xcode]Aide integrer image [ par mirmoleboss ] Bonjour, Voilà j'ai fait ce petit code mais il ne marche pas enfin il marchait mais l'intégration d'une image ne marche pas, je ne vois pas d'où vient BUG SDL et CLAVIER ??? HELP! [ par broks ] Voici Mon code, il est un peu lourd c normal je débute en SDL, mais des ke mon probleme sera resolu, j'allegerai tout ca bien sûr:#include #include #i


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales