begin process at 2012 05 29 14:14:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

Probleme de compilation avec plusieurs fichier .c


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

Probleme de compilation avec plusieurs fichier .c

samedi 15 avril 2006 à 00:29:14 | Probleme de compilation avec plusieurs fichier .c

adess00

Salut

Je developpe un jeu et pour pas faire trop fouilli j ai repartie mes fonctions dans diferrents .c qui includent tous un .h ou se trouve mes variables globales et definitions de fonctions

Le probleme est qu il me dit (dev cpp) mutiple definition of "nom de la variable"
Mais quand je n inclue pas le .h ben il ne trouve pas la variable il me di qu elle n est pas definie donc je c plus trop quoi faire la

heeeeeeeelp
Voila le .h que j inclue en debut de chaque .c



#include <windows.h> // Header File For Windows
#include <stdio.h> // Header File For Standard Input/Output
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
#include <stdlib.h>

BOOL keys[256]; // Array Used For The Keyboard Routine
BOOL active=TRUE; // Window Active Flag Set To TRUE By Default

//--------------FENETRE
HDC hDC=NULL; // Private GDI Device Context
HGLRC hRC=NULL; // Permanent Rendering Context
HWND hWnd=NULL; // Holds Our Window Handle
HINSTANCE hInstance; // Holds The Instance Of The Application

//--------------TEXTURES
GLuint texture[2]; // Storage For One Texture ( NEW )

//--------------DEPLACEMENTS
float movex=0,movey=0,movez=0;
float rotationx=0,rotationy=0;
float zspeed=0;

//--------------OBJETS_3D
//lists
GLuint list_ship;

typedef struct
{
        float x,y,z;
}Vertex;
Vertex model[7616];
void Chargement(void);
void LoadModel(char*);



//--------------FONCTIONS
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProc
GLvoid glPrint(const char *fmt, ...);
GLvoid LoadList();
int LoadGLTextures();
GLvoid BuildFont(GLvoid);
int DrawGLScene();

GLuint base;

Merci de votre aide
a+
samedi 15 avril 2006 à 00:44:54 | Re : Probleme de compilation avec plusieurs fichier .c

luhtor

Ce fichier .h, tu l'inclues seulement dans ton main. ET dans tes fichiers .c, tu mets tout la liste des variables avec extern devant le type et sans  valeur par défaut: ex: extern float zspeed;
samedi 15 avril 2006 à 00:55:07 | Re : Probleme de compilation avec plusieurs fichier .c

adess00

Ok mais je persiste en disant que c pas pratique loool
Mais bon si ya pas d autre moyen je vais m y soumettre
Pour les structures je suppose que c pareil jfai : extern Vertex mavariable;

sinon un question comme sa
c koi la difference entre float et GLfloat ?
merci de tes reponses :)
samedi 15 avril 2006 à 02:13:34 | Re : Probleme de compilation avec plusieurs fichier .c

luhtor

Voila le contenu du gl.h :
typedef float           GLfloat;        /* single precision float */
typedef float           GLclampf;       /* single precision float in [0,1] */

donc aucune différence entre float et GLfloat.

Sinon t'as tout a fait raison, c'est pas pratique les variables globales. C'est pour ca qu'il faut pas les utiliser.
Tu pourrais aussi essayer en mettant tes variables dans un ".h" en les déclarant static, et en incluant le .h partout ou t'en a besoin.
samedi 15 avril 2006 à 14:17:19 | Re : Probleme de compilation avec plusieurs fichier .c

adess00

AAAAAAAAAAAAAAAARGH

J en peux plus lol

J ai reussi avec les variables en extern sa marche mais sa deconne pour les fonctions. Il me sort undefined reference to Load
Pourtant j ai declarer ma f° Load dans fonction.h que main.c inclue donc et la fonction load se trouve dans chargement.c

Apparemment il ne trouve pas la fonction mas je ne comprend pas pourquoi ?

Jvai finir pas tout entasser dans un .c tellement sa me prend le chou lol
samedi 15 avril 2006 à 20:23:09 | Re : Probleme de compilation avec plusieurs fichier .c

ymca2003

Ne JAMAIS mettre de code ni de déclaration de variables dans .h
Pour partager des fonctions et variables entre plusieurs fichiers .c :


dans UN .c :
mettre les déclaration de variables et le code des fonctions :

int mavar = 0;

void mafct()
{
  .....
}

Ensuite pour utiliser ces variable ou ces fonctions depuis d'AUTRES .c :

extern int mavar;

extern void mafct(); // extern ext facultatif pour les fcts

la solution équivalente est de mettre les déclaration avec extern dans un .h et d'inclure le .h

dimanche 16 avril 2006 à 00:06:11 | Re : Probleme de compilation avec plusieurs fichier .c

adess00

AAAAAAAAAAARGH
Bon les variables sa marche plus de probleme mais la j ai ma fonction Loading qui deconne tjs !!!!
Il ne  l a trouve pas, undefined soit disant j ai essayer avec le extern j ai declarer ma fonction dans le .c ou j en avai besoin mais toujours rien

Bon je vous montre comment s organise mon projet je simplifie les fichiers pour laissé que la fonction qui pose probleme

chargement.c
-----------------------------
#include "fonction.h"
void Loading()
{
     //-------------CHARGEMENT DES MODELS 3D
     LoadModel("Data\\test.obj");
}
-----------------------------

main.c
-----------------------------
#include "fonction.h"
int InitGL(GLvoid)
{
if (!LoadGLTextures())
{
return FALSE;
}
Loading();
}
-----------------------------

fonction.h
-----------------------------
#include <windows.h> // Header File For Windows
#include <stdio.h> // Header File For Standard Input/Output
#include <gl\gl.h> // Header File For The OpenGL32 Library
#include <gl\glu.h> // Header File For The GLu32 Library
#include <gl\glaux.h> // Header File For The Glaux Library
#include <stdlib.h>

typedef struct
{
        float x,y,z;
}Vertex;

//--------------FONCTIONS
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); // Declaration For WndProc
void Loading();
GLvoid LoadList();
int LoadGLTextures();
int DrawGLScene();
void LoadModel(char*);
-----------------------------

Ce que je ne comprend pas c est que la fonction pour les textures ne pose pas de problemes et que la fonction Loading() pose un ptobleme pourtant elle sont declarées de la meme facon

Si vous avez une solution sa m aiderai bcp pcke j attend d organiser mon projet avant de le continuer
dimanche 16 avril 2006 à 13:00:29 | Re : Probleme de compilation avec plusieurs fichier .c

luhtor

"Load dans fonction.h que main.c inclue donc et la fonction load se trouve dans chargement.c"
Mais att ! fait mettre ta fonction load dans le fonction.c puisque tu l'as définis dans le fonction.h. Dans ton fichier .c ou tu définis la fonction, tu inclues bien le .h ou elle est définie ?



dimanche 16 avril 2006 à 14:45:46 | Re : Probleme de compilation avec plusieurs fichier .c

adess00

J ai trouver le probleme !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

En faite j avait fait ce qu il fallait mais en verifiant les options de compilation j ai vu que 2 fichiers n avai pas la case "compiler en C++" de cocher j ai cocher et sa a marcher !!
Enfin .. :)
dimanche 16 avril 2006 à 15:34:31 | Re : Probleme de compilation avec plusieurs fichier .c

adess00

c est genial le pushmatrix !!
Merci luthor

J'espere juste que on peut en mettre autant qu on veut.


Cette discussion est classée dans : file, include, header, for, float


Répondre à ce message

Sujets en rapport avec ce message

ou est l'erreur : boucles imbriquées [ par pausecpp ] le compilateur ne mentionne aucune "error" ni "warning" pourtant j'ai fait le programme pour que le valeur de S[N][M] changent!!!voici le code ( merci un programme qui tourne pas [ par youssefmahdia ] bonjour,voila, ce programme ne tourne pas,#include  #include  main() { int i,j; int s[5][5]; for(i=0;i {for(j=0;j s[i][j]=(j/(int)pow( Problème dans un code [ par ichigoZ710 ] Bonjour à tous,J'ai une méthode qui calcule la distance entre 2points. le but étant dans un triangle de type isocèle d'arrivé à calculer la base, un d Problem Build Windows.h [ par kakenette ] Hello, je suis nouvelle dans le domaine du C++ et j'ai essayer de faire un petit programme tout simple pour voire, lors du Build(F7) je reçois cette e ios::eof [ par ssmint ] Bonsoir,mon dernier petit souci en date en matière de C++, est la fonction eof(). Voici le code : #include &lt recuperer des données dans un fichiers. [ par volkukan ] Salut, je compile ce petit programme et tout fonctionne bien a part que j'ai un probleme de segmentation donc de pointeur. Y a til une ame généreuse c Sélection d'octet [ par dayvid75014 ] Bonjour à tous, Je récupère les octets de mon fichier vidéo dans un buffer "Buffer[]" et je voudrais sélectionner les octets 0x47 et je n'y a Help for change a program in C++ for AVI file [ par mr_log ] please how to change this program for read all size for AVI file? Ce programme permet d'aficher un fichier AVI bien précis width= 48 and lenght=80, so Wad File [ par Nicolas___ ] Bonjour , voila j'ai un petit probleme pour lire 1 fichier WAD (  wad  )donc suivant le modele décrit je me suis fait 2 structures : struct Header{


Nos sponsors


Sondage...

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 : 2,480 sec (3)

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