Cerco di spiegarvi un attimo la situazione.
Compilando un progetto in Visual C++, ricevo un errore, il seguente:
codice:
1>Collegamento in corso...
1>Silhouette.obj : error LNK2005: "class std::basic_string<char,struct std::char_traits<char>,
class std::allocator<char> > __cdecl lower_string(class std::basic_string<char,struct std::char_traits<char>,
class std::allocator<char> > const &)" (?lower_string@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@ABV12@@Z)
già definito in FunzionePeso.obj
1>Funzione Peso\Release\Funzione Peso.exe : fatal error LNK1169: rilevato uno o più simboli definiti più volte
Cerco ora di raccontarvi come sono strutturati i file.
Il file che da errore, cioè quello in cui secondo me è il problema, è ObjRead.h
Il main si trova in FunzionePeso.cpp, se qui dentro includo il file ObjRead.h non ho nessun errore e tutto funziona correttamente.
Supponiamo che in FunzionePeso.cpp includa anche un altro file, denominato Silhouette.h, e che questo a sua volta includa ObjRead.h, ecco che qui si presenta il problema...
Premetto che in ObjRead.h uso le direttive:
codice:
#ifndef
#define
#endif
Un altra situazione in cui si presenta l'errore è la seguente: in FunzionePeso.cpp includo solo Silhouette.h (e non più ObjRead.h).
In Silhouette.h resta incluso ObjRead.h. Anche in questo caso ho errore in fase di link.
Non riesco a capire dove stia il problema, spero di essermi spiegato, al limite chiedete pure.
Grazie!