Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Multiple definition of [ Divers / Débutant(e) ] (Yunchi)

mardi 24 juillet 2007 à 04:42:42 | Multiple definition of

Yunchi

Bonjour, J'ai une bibliotheque perso bib.h dans laquelle j'ai mis des variables globales dont une qui est 'int LINE_LENGHT = 200;' declaree entre les #include et les prototypes. Je me sers de cette variable pour declarer ensuite des tableau de char qui doivent avoir la meme taille donc cette variable me permettrait s'il fau changer la taille de ces tableau ne changer qu'une seule variable. Par exemple dans fonction_file.c j'ai un 'char buffer[50][LINE_LENGHT];' et dans organisation.c j'ai un 'char temp[LINE_LENGHT];'. Lorsque je compile j'ai des erreurs : multiple definition of 'LINE_LENGHT' .... pourtant j'ai d'autre variables globales dont je me sers dans plusieurs fonctions dans plusieurs .c differents et il n'y a aucun probleme .... Si quelqu'un sait d'ou vien ce probleme .... ps : j'ai cherche sur le forum et il y a eu pas mal de post sur ce probleme mais je n'ai pas trouve de reponse a mon probleme : /

mardi 24 juillet 2007 à 09:03:14 | Re : Multiple definition of

BruNews

Administrateur CodeS-SourceS
dans common.c
int mavar;

dans common.h
#ifndef COMMON_H
#define COMMON_H
extern int mavar;
#endif

ciao...
BruNews, MVP VC++

mardi 24 juillet 2007 à 09:14:41 | Re : Multiple definition of

Yunchi

en fait le probleme c'est que je me sers de cette variable definie dans bib.h pour declarer des tableaux de caracteres dans mes .c par ex dans un .c j'ai " char temp[200]; " j'ai essayer avec un #define LINE_LENGHT 200 mais toujours le meme probleme : /

mardi 24 juillet 2007 à 12:07:09 | Re : Multiple definition of

ctx_man

Salut ! Il y a fort à parier que quelque chose s'apelle déjà LINE_LENGHT dans un des includes que tu fait au dessus. exemple : dans truc.h int LINE_LENGHT = XXXXX; dans bib.h int LINE_LENGHT = 200; dans fonction_file.c : #include "bib.h" //Premiere définition de LINE_LENGHT #include "truc.h" //Seconde définition de LINE_LENGHT => Erreur char buffer[50][LINE_LENGHT]; //Quel définition utiliser ? Solution : change le nom de ta variale globale.

mardi 24 juillet 2007 à 15:57:39 | Re : Multiple definition of

SAKingdom

Membre Club
Une variable déclaré dans un header ?
Ben tu pourrais faire quelque chose comme:

#ifndef MYVAR
#define MYVAR
int myvar = 10;
#else
extern int myvar;
#endif

Cependant, la méthode qu'a proposé BruNews fais tout aussi bien et est bien plus propre.

.c
int myvar = 10;

.h
#ifndef _HEADER_INCL // Début du .h
#define _HEADER_INCL
...
extern int myvar;
...
#endif // Fin du .h

Simple remarque au passage. Ce message est dans le thème C. Cependant, il est impossible de donner, pour taille d'un tableau, une variable en C.
Cette valeur DOIT être constante (et je ne parle pas de variable constante ici (const int)).

C++ (@++)


mercredi 25 juillet 2007 à 03:54:04 | Re : Multiple definition of

Yunchi

ah donc il n'est pas possible de declarer un tableau de char avec une variable .... J'ai egalement essayer de mettre #define LINE_LENGHT 200 pour ensuite pouvoir declarer mon tableau de char avec char temp[LINE_LENGHT]; mais j'ai eu egalement le probleme du multiple definition of J'ai scanner l'ensemble des fichiers de mon projet et il n'y a pas d'autre LINE_LENGHT a part celui defini dans la bibliotheque Donc quel serait la methode si par exemple dans l'ensemble de mes .c jai plusieur declaration int nb[LINE_LENGHT]; ou char temp[LINE_LENGHT];. Comment devrais je declarer ce LINE_LENGHT dans ma bibliotheque afin que lorsque je veux changer cette valeur je n'ai qu'a le faire une fois et non pour l'ensemble de mes variables. Merci

mercredi 25 juillet 2007 à 04:15:16 | Re : Multiple definition of

SAKingdom

Membre Club
Ton #define LINE_LENGHT 200 est dans ton bib.h ?
Ajoute tout simplement ceci au tout début du .h

#ifndef _BIB_INCL
#define _BIB_INCL

et ceci à la toute fin

#endif

C++ (@++)


mercredi 25 juillet 2007 à 04:55:58 | Re : Multiple definition of

Yunchi

oui je sais quand meme faire une bibliotheque perso :) bib.h : #ifndef _BIB_ #define _BIB_ #include #include #include #include //#define LINE_LENGHT 200 #endif et apres dans un .c j'ai char temp[LINE_LENGHT]; et dans un autre .c j'ai char buffer[50][LINE_LENGHT];

mercredi 25 juillet 2007 à 08:10:40 | Re : Multiple definition of

ctx_man

Ah c'est un define ! tu avais ecrit "int LINE_LENGHT = 200" dans ce cas la : bib.h : #ifndef _BIB_ #define _BIB_ #include #include #include #include #ifdef LINE_LENGHT //Si LINE_LENGHT a déjà été défini #undef LING_LENGHT //On le supprime des definitions du preprocesseur #define LINE_LENGHT 200 //On ajoute LINE_LENGHT #endif Ca devrait marcher. Sauf que si tu as besoin du LINE_LENGHT contenu dans un des #include que tu fait, ben tu es mal barré ! lol

mercredi 25 juillet 2007 à 09:16:42 | Re : Multiple definition of

Yunchi

bah en fait j'ai tester les deux en declarant une variable globale int LINE_LENGHT = 200; et en definissant comme une constante mais probleme dans les deux cas


1 2

Cette discussion est classé dans : probleme, line, multiple, definition, lenght


Répondre à ce message

Sujets en rapport avec ce message

multiple definition de fonctions ! [ par bidules ] bonjour,lorsque je compile j'ai plein d'erreur me disant qu'il ya des multiple definitions dans mes fichiers objets : ds tou les fichier .h il y a au probleme avec strstream [ par flyfrog ] Bonjour, J'ai le code suivant qui permet de lire les parametres d'entrée et de les restituer à l'aide dy buffer strsteam (variable line). Le programme multiple definition et aucun endroit pour situer l'erreur [ par theidiot ] Bonjours, je compile présentement sur dev-cpp et j'ai un message d'erreur comme suit:multiple definition of 'std::basic_ostringstream, std::allocator 'multiple definition' de fichiers en-tête [ par GIRAFE ENRHUMEE ] J'écris, sur Dev C++ 4, un projet C++ comportant 2 fichiers .cpp et un fichier .h.  L'un de mes fichiers .cpp comporte #include, jusqu'à présent tout Optimisation et modification du codeC pour lire 4pixels au lieu 1 [ par zorrofes ] Bonjour,j ai besoin de votre aide. J' ai reussi a optimiser mon code et de diminuer un peu le nombre de cycles lors de l execution. Ce code permet de probleme de ShellExecute [ par seymet ] Bonjour ,J'ai un souci , je voudrais lancer un executable lorsque depuis un ecran de veille .En mode apersu tout fonctionne il me lance le programme . Modeleur 3d : Probleme de back spin ds l affichage (opengl/Qt) [ par serialtom ] salut a tousje vous ecris car j ai un souci... je realise actuellement un modeleur 3d et j ai un problème avec l une de mes fonctions. je veux effectu definition de char [ par noSnoR ] Je programme depuis peu de temps, et j'ai besoin d'initialiser une chaine de characteres automatiquement... mersi de m'aider probleme de .exe [ par xgtm666 ] Salut a tous,voila mon prob,j'ai VSC++ 6.0 quand je compile un exe je le retrouve en plusieur fichier et que je le passe a un pote sa dit quil manque probleme html [ par istase ] J'ai un petit probleme : je voudrai à partir d'un bouton se trouvant dans un formulaire en html faire appel au magnétophone de windows...c le lien c:W


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.