Bonjour à tous, je suis confronté à un soucis de Linker que j'ai un peu de mal à comprendre. Je m'explique, je suis sous visualstudio2010, mon projet contient un fichier "define.h" que j'inclus dans plusieurs autres headers. Define.h contient (notamment) :
Or, à la compilation, je suis gratifié du message error LNK2005: "void __cdecl DEBUG_LOG(char *,...)" (?DEBUG_LOG@@YAXPADZZ) déjà défini(e) dans Camera.obj. Ce que je ne comprends pas, c'est que le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #ifndef __DEFINES #define __DEFINES [...] #define _DEBUG void DEBUG_LOG(char* format, ...) { #ifdef _DEBUG && __DEBUG std::string str(format); str+="\n"; va_list args; va_start(args,format); vprintf(str.c_str(), args); #endif } #endifdevrait normalement éviter ce problème de définition multiple, ce qui ne semble pas être le cas. Auriez vous des idées sur ce qui provoque cela ? N'hésitez pas à me demander plus de précisions si nécessaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 #ifndef __DEFINES #define __DEFINES
Partager