Linker Tools Error LNK2005 symbol already defined in object
The given symbol, displayed in its decorated form, was multiply defined.
Tips
One of the following may be a cause:
The most common cause of this error is accidentally linking with both the single-threaded and multithreaded libraries. Ensure that the application project file includes only the appropriate libraries and that any third-party libraries have appropriately created single-threaded or multithreaded versions.
The given symbol was a packaged function (created by compiling with /Gy) and was included in more than one file but was changed between compilations. Recompile all files that include the symbol.
The given symbol was defined differently in two member objects in different libraries, and both member objects were used.
An absolute was defined twice, with a different value in each definition.
Jeg har selv fået LNK2005, når jeg initialiserer static variable i den headerfil, hvor de er definerede - fordi headerfilen includes flere gange. Når jeg flytter initialiseringen et sted hen hvor den kun \'læses\' een gang forsvinder problemet.
Har du noget lign. understående i din fil? Hvis ikke, så prøv at tilføje det (de første 2 linier aller øverst i filen der indeholder din WinClass og den sidste linie aller nederst i filen...)
Problemet opsåt ofte selv efter man har gjort som jpk skriver, fordi den samme variable defineres med værdi i flere moduler:
#ifndef __myhdr_h__ #define __myhdr_h__
extern int wscroll = 0; #endif
Eftersom wscroll bliver initialiseret med en værdi her (værdien 0), vil initialiseringen ligge i alle module der har fat i myhdr.h Løsningen er at definere eet af modulerne som MAIN og så gøre sådan her:
#define MAIN #include \"myhdr.h\"
mens RESTEN af modulerne så gør sådan her:
#include \"myhdr.h\"
I header-file tilføjes så en lille ekstra krølle:
#ifndef __myhdr_h__ #define __myhdr_h__
extern int wscroll #ifdef MAIN = 0 #endif ; #endif
Så bliver den statiske variable kun initialiseret EEN gang.
Du skal gøre følgende: 1. Åbn Project Settings dialog box ved at klikke Settings på Build menu. 2. I Settings vælger du den project configuration som får link errors. 3. Klik på Link tab. 4. Vælg INPUT i Category combo box. 5. I Libraries to Ignore edit box, intaster du de libraries navne som giver fejlen (f.eks. Nafxcwd.lib Libcmtd.lib) 6. I Object/library Modules edit box, indtaster du library names. Du må sikre dig at disse er listede i samme rækkefølge som i de to første libraries. (f. eks. Nafxcwd.lib Libcmtd.lib).
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.