CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] variable extern

pouky10
pouky10
Niveau 6
14 mai 2005 à 14:03:58

Salut,

J´ai un problème, je déclare toujour une variable de type SDL_Event et SDL_Surface quand j´utilise la SDL, donc j´ai fait un source à part qui initialise ses variables et la SDL. Mais quand je déclare :

extern SDL_Surface *screen;
extern SDL_Event event;

Dev-C++ me mets les erreurs suivantes(comment les régler??):

[Linker error] undefined reference to `screen´

[Linker error] undefined reference to `screen´

[Linker error] undefined reference to `screen´

[Linker error] undefined reference to `event´

[Linker error] undefined reference to `event´
C:\Documents and
Settings\Léon\Bureau\tuto\projets\snake\Makefile.w
in
[Build Error] [Snake.exe] Error 1

Voici la source main:

  1. include " InitSDL.h"

int main(int argc, char *argv[])
{
init_sdl(800,600,true);
while(1)
{
SDL_PollEvent(&);
if(event.type==SDL_KEYDOWN) break;
}
return 0;
}

Voici la souce InitSDL:

  1. include < iostream>
  2. include < stdlib.h>

/ *
* INitialise SDL t SDL_ttf si on declare une constante SDL_TTFF *

  • /

#define SDL_SDL_SDL
#include < SDL\SDL.h>

extern SDL_Surface *screen; / /Met les variable que j´utilise
extern SDL_Event event;

void init_sdl(int with,int height, bool in)//initialise la sdl
{
if(SDL_Init(SDL_INIT_VIDEO) ==-1)
{
printf("%s" , SDL_GetError());
exit(1);
}
SDL_ShowCursor(0);
atexit(SDL_Quit);

if ( in)
screen = SDL_SetVideoMode(with,height, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN); / / mode graphique
if ( !in)
screen = SDL_SetVideoMode(with,height, 32,SDL_HWSURFACE|SDL_DOUBLEBUF); / / mode graphique

if(screen==NULL)
{
printf("Can´t set screen %d", SDL_GetError());
}
}

#ifdef SDL_TTFF
#define SDL_TTFF
#include < SDL\SDL_ttf.h>
if ( TTF_Init() < 0)
{
fprintf(stderr, " Impossible d´initialiser SDL_TTF: %s\n",SDL_GetError());
}
#endif

  1. endif
JeanYvesYves
JeanYvesYves
Niveau 10
14 mai 2005 à 14:09:14

extern ne sert pas a ce que tu fais.On utilise souvent extern pour dire :
" je te dis juste que cette variable existera quelque part ailleurs dans mon programme, si tu la rencontre, ne me dis pas que tu ne la connais pas, tu verras en linkant que tu la trouvera :)"

Et la, donc, ça compile, mais en linkant il te dit : " ah mais non ! ! elle n´est nulle part ! !"

pouky10
pouky10
Niveau 6
14 mai 2005 à 15:21:07

Salut, j´ai un autre problème(lautre est correcte), voici un autre source:

  1. ifnded listecha

#define listecha

template < class T>
class listec
{
public:
T *pfirst; / /membre servant à la liste
T *pthis;

listec();
T *add();
}

listec() / /constructeur
{
pfirst =NULL;
pthis = NULL;
}

T *add() / /ajoute un membre
{
T *s = new T;
if ( !pfirst)
{
pfirst = s;
pfirst->pnext==NULL;
pcourant= pfirst;
}
else
{

}
}

  1. endif

Mais dev c++ me dit:

2 C:\Documents and Settings\Léon\Bureau\tuto\projets\snake\main.cpp
In file included from main.cpp

37 C:\Documents and
Settings\Léon\Bureau\tuto\projets\snake\listechain
e.h
unbalanced `#endif´

C:\Documents and
Settings\Léon\Bureau\tuto\projets\snake\Makefile.w
in
[Build Error] [main.o] Error 1

Que dois-je faitre pour auter cette erreur?

LGV
LGV
Niveau 28
14 mai 2005 à 17:20:52
  1. ifnded

. ..

#ifndef

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment