Accueil > Forum > > > > Probleme de preprocesseur
Probleme de preprocesseur
jeudi 1 mai 2008 à 22:41:21 |
Probleme de preprocesseur

alphaone
|
Bonjour, j'ai un fichier d'en tête .h inclut partout ou il y as: #ifndef INCLUDE_ENV_H #define INCLUDE_ENV_H
//debug level, 0: no debug, 10 critical and internal error, 50 show main activity, 90 debug mode, more than 100 is useless. #define DEBUG 100
#if (DEBUG>0) #define DEBUGCONSOLE(a,b) debug_console_fonction(a,b) #include <iostream> using namespace std; #include <QString> void debug_console_fonction(int number,QString text) { if(number>=DEBUG) cout << qPrintable(text) << "\n"; } #else #define DEBUGCONSOLE(a,b) //a,b #endif //... #endif
Et il me dit que je redéfini la fonction debug_console_fonction():
CopyThread.o: In function `debug_console_fonction(int, QString)': CopyThread.cpp:(.text+0x710): multiple definition of `debug_console_fonction(int, QString)' AddFolderThread.o:AddFolderThread.cpp:(.text+0xf20): first defined here Ewindow.o: In function `debug_console_fonction(int, QString)': Ewindow.cpp:(.text+0x130): multiple definition of `debug_console_fonction(int, QString)' AddFolderThread.o:AddFolderThread.cpp:(.text+0xf20): first defined here FEwindow.o: In function `debug_console_fonction(int, QString)': FEwindow.cpp:(.text+0xaa0): multiple definition of `debug_console_fonction(int, QString)' AddFolderThread.o:AddFolderThread.cpp:(.text+0xf20): first defined here main.o: In function `debug_console_fonction(int, QString)': main.cpp:(.text+0x120): multiple definition of `debug_console_fonction(int, QString)' AddFolderThread.o:AddFolderThread.cpp:(.text+0xf20): first defined here Mwindow.o: In function `debug_console_fonction(int, QString)': Mwindow.cpp:(.text+0x16c0): multiple definition of `debug_console_fonction(int, QString)' AddFolderThread.o:AddFolderThread.cpp:(.text+0xf20): first defined here
|
|
jeudi 1 mai 2008 à 22:49:36 |
Re : Probleme de preprocesseur

SAKingdom
|
Normal. Partout ou tu inclus ton header, il redéfinit ta fonction. 2 solutions: soit tu déclare cette fonction dans un .c puis tu ne met que son prototype dans le header soit tu déclare cette fonction en inline: inline void debug_console_fonction(int number,QString text) { if(number>=DEBUG) cout << qPrintable(text) << "\n"; }C++ (@++)
|
|
jeudi 1 mai 2008 à 22:54:44 |
Re : Probleme de preprocesseur

alphaone
|
Pourtant j'ai mit #ifndef INCLUDE_ENV_H #define INCLUDE_ENV_H #endif qui enpéche le redefinition multiple.
Ca fait quoi inline?
|
|
jeudi 1 mai 2008 à 23:07:59 |
Re : Probleme de preprocesseur

SAKingdom
|
Non apparemment, cette solution (inline) ne fonctionne pas avec gcc. Prend l'autre solution dans ce cas. C++ (@++)
|
|
jeudi 1 mai 2008 à 23:13:48 |
Re : Probleme de preprocesseur

alphaone
|
Re, je veux comprendre: Pourtant j'ai mit #ifndef INCLUDE_ENV_H #define INCLUDE_ENV_H #endif qui enpéche le redefinition multiple. [ Lien ]
|
|
jeudi 1 mai 2008 à 23:34:26 |
Re : Probleme de preprocesseur

SAKingdom
|
Réponse acceptée !
Si tu veux utiliser printf dans 2 fichiers .c/.cpp, il faudra bien inclure stdio.h dans chacun d'eux. Même principe ici. #ifndef ... #define... ... #endif empêche seulement que le .h soit réinclus plusieurs fois dans un même fichier source (.c/.cpp). C++ (@++)
|
|
Cette discussion est classée dans : fonction, int, console, debug, qstring
Répondre à ce message
Sujets en rapport avec ce message
Pas compris les arguments [ par Bog ]
Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c
Pas compris les arguments [ par Bog ]
Bonjour.Voila à chaque fois que je me lance dans un projet de programmation C++, je suis tjrs bloqué par certaines choses, surtout les arguments, et c
Prob grave avec Visual... [ par Nuage ]
Voila, j'ai un grave problème avec le debug de Visual. Je fait un bête code source, avec une fonction pour créer un élement d'une pile, et une fonctio
scanf() [ par clb ]
bonjour à tous,j'ecris par exemple :int fonction(){ if(true) return 0; else return -1}dans main, si cette fonction retourne 0,alors j'appli
GTK+-2.0, saisie d'un int ! [ par zazar ]
G me demande si la réalisation d'une fonction retournant un int qu'un utilisateur à rentré par le biais d'une fenetre nécessite forcément une conversi
Reference pour arguments de fonction! [ par CoxJoe ]
Hello,Voila mon code qui est tres simple :# include # include using namespace std;// fonction pour entrer des lettresvoid getchar(char& name[]){ cout
la fonction gotoxy(int abs,int ord) [ par jimtruand ]
Salut !Je cherche la fonction equivalente a gotoxy(arg1,arg2) de borlandc++ sous Visualc++ ?C'est une fonction qui nous permet de placer le curseur ou
2 return d'une fonction [ par Silver360 ]
Hello tout le monde!Je voulais savoir s'il est possible qu'une fonction retourne 2 paramètres ( dans le genre int int mafonction() ) ou si je dois fai
Fonction déclaré en static [ par crocejf2000 ]
Quel est la différence entre une fonction déclaré comme suit :int NomClasse::Nomfonctrion(int j){blabla}et une fonction déclaré en static :static int
fonction d'alloaction dynamique [ par tomsawyerbelgique ]
Pour une allocation dynamique d'un tableau à deux dimensions. Comme celle ci:cout // Initalisation int** tab = new int*[p_size1_tab]; for(in
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|