Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1497 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Problème étrange d'inclusion de header

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème étrange d'inclusion de header

n°2111159
Profil sup​primé
Posté le 12-11-2011 à 22:10:36  answer
 

Bonjour,
 
Je code sous codeblocks, et j'ai un problème assez inexplicable. Lorsque je faisais des programmes sur console, l'inclusion des .h n'avait aucun problème, mais lorsque je fais des programmes en SDL, il ne reconnait plus aucune fonction déclarées dans le .h :  
 
main.c

Code :
  1. #include <SDL.h>
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include "test.h"
  6. int main ( int argc, char** argv )
  7. {
  8.     demo();
  9.     SDL_Init(SDL_INIT_VIDEO);
  10.     SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
  11.     SDL_Quit();
  12.     return EXIT_SUCCESS;
  13. }


 
test.h

Code :
  1. #ifndef TEST_H
  2. #define TEST_H
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <string.h>
  6. void demo();
  7. #endif


 
test.c

Code :
  1. #include "test.h"
  2. void demo(){
  3. int i;
  4. }


 
Quand je compile, j'obtiens l'erreur "In function SDL_main, undefined reference to demo()"
 
Cependant, si dans le fichier main.c je remplace #include "test.h" par #include "test.c", cela compile correctement et je n'ai plus d'erreur. Inclure un .c me semble quand même étrange, donc quelqu'un n'aurait pas une idée d'où vient le problème d'inclusion ?
 
Merci !

mood
Publicité
Posté le 12-11-2011 à 22:10:36  profilanswer
 

n°2111170
Terminapor
I'll see you rise.
Posté le 13-11-2011 à 02:09:39  profilanswer
 

extern void demo() dans ton main pour préciser que la fonction est sur un autre fichier et jamais d'include de fichier *.c me semble-t-il :d


Message édité par Terminapor le 13-11-2011 à 02:10:00

---------------
Perhaps you don't deserve to breathe
n°2111172
xilebo
noone
Posté le 13-11-2011 à 09:01:03  profilanswer
 


 
 
Je ne pense pas que ca vienne de là, mais si SDL.h définit TEST_H pour je ne sais quelle raison, ce test " #ifndef TEST_H " ne passera pas.
 
Essaie dans un premier temps de remplacer #ifndef TEST_H par #ifndef __MYTEST_H__ ( n'oublie pas de changer le define en dessous également ).

Message cité 1 fois
Message édité par xilebo le 13-11-2011 à 09:01:21
n°2111173
Pouet_fore​ver
Trance forever :)
Posté le 13-11-2011 à 10:54:02  profilanswer
 

xilebo a écrit :

Je ne pense pas que ca vienne de là, mais si SDL.h définit TEST_H pour je ne sais quelle raison, ce test " #ifndef TEST_H " ne passera pas.
 
Essaie dans un premier temps de remplacer #ifndef TEST_H par #ifndef __MYTEST_H__ ( n'oublie pas de changer le define en dessous également ).


 
Non, ça ne vient pas de là. De plus un _ suivit d'un _ est un identificateur réservé.
 
boboh0 > Es-tu sûr de compiler en C et pas en C++ ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Problème étrange d'inclusion de header

 

Sujets relatifs
Problème template c++<audio> jquery problème avec l'event ended
Probleme de Compilation (switch) Problème de CSS
probleme aspell : anglais mis de force meme avec set_option(...)Problème de démarrage de Apache Mysql
[RESOLU][c++] probleme de syntaxe dans un héritageProbleme Java + Telnet + Active Directory
Python + Qt + OpenCV = problème :/ 
Plus de sujets relatifs à : Problème étrange d'inclusion de header


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR