begin process at 2013 05 23 13:27:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

undefined référence to "fonction"


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

undefined référence to "fonction"

jeudi 16 août 2012 à 18:49:41 | undefined référence to "fonction"

bizonwarrior

Help me !!!
ça fais maintenant plusieurs jours que je bloque sur cette erreur.
je suis débutant en C/SDL et je ne trouve pas mon erreur

voici mon main où j'appelle ma fonction jouer :
Code C/C++ :
#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>

#include "constante.h"
#include "jeu.h"


void pause();

int main(int argc, char *argv[])
{
    SDL_Surface *ecran = NULL, *menu = NULL;
    SDL_Rect positionMenu;
    SDL_Event event;

    int continuer = 1;

    SDL_Init(SDL_INIT_VIDEO);

    SDL_WM_SetIcon(SDL_LoadBMP("avant1.bmp"), NULL); // L'icône doit être chargée avant SDL_SetVideoMode
    ecran = SDL_SetVideoMode(LARGEUR_FENETRE, HAUTEUR_FENETRE, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
    SDL_WM_SetCaption("The Adventure of ceanoth", NULL);

    menu = SDL_LoadBMP("menu.bmp");
    positionMenu.x = 0;
    positionMenu.y = 0;

    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
            case SDL_KEYDOWN:
                switch(event.key.keysym.sym)
                {
                    case SDLK_ESCAPE: // Veut arrêter le jeu
                        continuer = 0;
                        break;
                    case SDLK_KP1: // Demande à jouer
                        jouer(ecran);
                        break;
                }
                break;
        }

        // Effacement de l'écran
        SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
        SDL_BlitSurface(menu, NULL, ecran, &positionMenu);
        SDL_Flip(ecran);
    }

    SDL_FreeSurface(menu);
    SDL_Quit();

    return EXIT_SUCCESS;
}



void pause()
{
    int continuer = 1;
    SDL_Event event;

    while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
        }
    }
}




Ma fonction jouer :
Code C/C++ :
#include <stdlib.h>
#include <stdio.h>
#include <SDL.h>
#include <SDL_image.h>

#include "constante.h"
#include "jeu.h"


void jouer(SDL_Surface *ecran)
{
    SDL_Surface *ceanoth[16] = {NULL}; // 4 surface pour 4 directions
    SDL_Surface *ceanothactuel = NULL;
    SDL_Rect positionceanoth;
    SDL_Event event;

    int continuer = 1, i = 0, j = 0;
    int carte[NB_BLOCS_LARGEUR][NB_BLOCS_HAUTEUR] = {0};

    // Chargement des sprites (personnage)
    ceanoth[avant1] = SDL_LoadBMP("avant1.bmp");
//    ceanoth[avant2] = SDL_LoadBMP("avant2.bmp");
//    ceanoth[avant3] = SDL_LoadBMP("avant3.bmp");
//    ceanoth[avant4] = SDL_LoadBMP("avant4.bmp");
    ceanoth[arriere1] = SDL_LoadBMP("arriere1.bmp");
//    ceanoth[arriere2] = SDL_LoadBMP("arriere2.bmp");
//    ceanoth[arriere3] = SDL_LoadBMP("arriere3.bmp");
//    ceanoth[arriere4] = SDL_LoadBMP("arriere4.bmp");
    ceanoth[gauche1] = SDL_LoadBMP("gauche1.bmp");
//    ceanoth[gauche2] = SDL_LoadBMP("gauche2.bmp");
//    ceanoth[gauche3] = SDL_LoadBMP("gauche3.bmp");
//    ceanoth[gauche4] = SDL_LoadBMP("gauche4.bmp");
    ceanoth[droite1] = SDL_LoadBMP("droite1.bmp");
//    ceanoth[droite2] = SDL_LoadBMP("droite2.bmp");
//    ceanoth[droite3] = SDL_LoadBMP("droite3.bmp");
//    ceanoth[droite4] = SDL_LoadBMP("droite4.bmp");

    ceanothactuel = ceanoth[arriere1]; // ceanoth sera dirigé vers le bas au départ

     // Recherche de la position de Mario au départ
    for (i = 0 ; i < NB_BLOCS_LARGEUR ; i++)
    {
        for (j = 0 ; j < NB_BLOCS_HAUTEUR ; j++)
        {
            if (carte[i][j] == ceanoth) // Si Mario se trouve à cette position sur la carte
            {
                positionceanoth.x = i;
                positionceanoth.y = j;
                carte[i][j] = VIDE;
            }
        }
    }

    // Activation de la répétition des touches
    SDL_EnableKeyRepeat(100, 100);

     while (continuer)
    {
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
                break;
            case SDL_KEYDOWN:
                switch(event.key.keysym.sym)
                {
                    case SDLK_ESCAPE:
                        continuer = 0;
                        break;
                    case SDLK_UP:
                        ceanothactuel = ceanoth[avant1];
                        positionceanoth.y--;
                        break;
                    case SDLK_DOWN:
                        ceanothactuel = ceanoth[arriere1];
                        positionceanoth.y++;
                        break;
                    case SDLK_RIGHT:
                        ceanothactuel = ceanoth[droite1];
                        positionceanoth.x++;
                        break;
                    case SDLK_LEFT:
                        ceanothactuel = ceanoth[gauche1];
                        positionceanoth.x--;
                        break;
                }
                break;
        }

    // Désactivation de la répétition des touches (remise à 0)
    SDL_EnableKeyRepeat(0, 0);

    // Libération des surfaces chargées
    for (i = 0 ; i < 16 ; i++)
        SDL_FreeSurface(ceanoth[i]);
    }
}



Et lorsque je compile code:block me met un undefined refence to 'jouer(SDL_surface *)'

Je précise, je suis débutant et mon code n'est pas fini des aides, conseilles et autres sont les bienvenus
vendredi 17 août 2012 à 01:26:17 | Re : undefined référence to "fonction"

CptPingu

Administrateur CodeS-SourceS
Bonjour.

C'est une erreur de compilation ou de link ?

Si c'est une erreur de compilation, vérifie que la fonction "jouer" ait bien la même signature dans le header et le fichier de code (et qu'il soit bien présent dans
le header). Tu peux aussi vérifier que la garde de ton header ne soit pas mal conçue (ça arrive sur une faute de frappe).
Enfin, vérifie que le fichier "jeu.h" soit bien trouvé par ton fichier "main.c".

Si c'est une erreur de link, vérifie que le fichier "jeu.c" soit bien dans la ligne de compilation (si tu ne compiles que le "main.c", c'est sur que ça fonctionnera tout de suite moins bien :p)

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
vendredi 17 août 2012 à 14:01:18 | Re : undefined référence to "fonction"

bizonwarrior

Réponse acceptée !
j'ai fais voir mon code à un ami et on à pu constater que mon 'main' n'étais pas "main.c" mais "main.cpp" donc en recréant correctement le 'main' tout va bien. Par contre aucune idée de pourquoi l'extension n'étais pas bonne.
Merci beaucoup e"n tout cas, j'aurais peut être encore besoin de vous d'ici la fin de mon projet =P
A plus


Cette discussion est classée dans : bmp, sdl, event, loadbmp, ceanoth


Répondre à ce message

Sujets en rapport avec ce message

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 morpion en SDL c++ [ par juju116 ] Salut tout le monde! j'expose donc mon souci pour l'instant mon programme affiche une image en fond d'ecran et bizarement cette image est bien chargé 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 Programme Trop Lent [ par Lemng ] Bonjour tout le monde,voici mon problème : j'utilise la SDL pour programmer un jeu se jouant a l'aide du clavier et de la souris de la manière suivant petit probleme SDL [ par DarthKhaos ] Bonjour, voila j'ai un petit souci, j'ai un projet ou je dois faire bouger un bras robotisé aprés plusieur test sa marche a merveille, en selectionnan Probleme de gestion des axes avec la SDL [ par Noha819 ] Voila j'ai commencer a écrire un code pour controler ma souris ainsi que le clic G/D la touche entrer, echap ect... avec ma manette Xbox 360 en C.[^^l Rotation de forme [ par boubz013 ] Bonsoir, je suis débutant et fasciné en opengl, mais je m'oppose à un probléme, en faite j'essaie de faire tourner mes forme geometrique à l'aide des Problème d'écran bleu lors de l'éxécution de mon programme [ par HarlockLeFleau ] Bon, alors, en fait j'ai un petit problème: Voyez-vous je me suis récemment lancé dans la programmation pour openGL sous Windows. Alors je code sous N Besoin d'aide[urgent] [ par pyromaster77430 ] Bonjour j ai un probleme j utilise dev c++ pour compiler le code ci dessous mais a chaque fois j ai une erreur de syntaxefau t il rajouter quelque cho sdl et clavier [ par scawf ] Bonjour, j ai un petit probleme avec SDL et la gestion du clavier.. je met: while(done == 0) { //... while ( SDL_PollEvent(&event) )  { if ( event.typ


Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

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 : 6,100 sec (3)

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