Misschien een heel simpel antwoord op een heel simpel vraagje maar ik kom er simpelweg gewoon niet uit.
Ik heb 3 bestanden, socket.cpp en main.cpp die beiden gebruik maken van een variable "sock". Deze 2 bestanden hebben het 3e bestand, namelijk main.h, geinclude staan. In main.h staat:
Maar nu is het zo dat wanneer ik het project build, ik gewoon het volgende terug krijg:
Nogmaals excuus als dit heel erg basic is, ik snap simpelweg niet waarom hij gewoon niet doet wat ik wil
edit:
Ik heb ook begrepen dat je hier beter extern kan gebruiken? Daarmee krijg ik echter "error LNK2001: unresolved external symbol" terug terwijl ik wel degelijk winsock2.h geinclude heb en ws2_32.lib heb toegevoegd aan de linker.
Help
edit 2:
Heb het gefixed, had me gewoon wat beter moeten inlezen over extern. sock defined in main.cpp en vervolgens een extern in header file gegooid was genoeg
Ik heb 3 bestanden, socket.cpp en main.cpp die beiden gebruik maken van een variable "sock". Deze 2 bestanden hebben het 3e bestand, namelijk main.h, geinclude staan. In main.h staat:
C++:
1
2
3
4
5
6
| #ifndef _E_MAIN_H_ #define _E_MAIN_H_ ... SOCKET sock; ... #endif |
Maar nu is het zo dat wanneer ik het project build, ik gewoon het volgende terug krijg:
Hoe kan hij in hemelsnaam sock 2 keer proberen te definieren? Die ifndef/define/endif zouden er toch voor moeten zorgen dat die code gewoon 1 keer wordt uitgevoerd?socket.obj : error LNK2005: "unsigned int sock" (?sock@@3IA) already defined in main.obj
Nogmaals excuus als dit heel erg basic is, ik snap simpelweg niet waarom hij gewoon niet doet wat ik wil
edit:
Ik heb ook begrepen dat je hier beter extern kan gebruiken? Daarmee krijg ik echter "error LNK2001: unresolved external symbol" terug terwijl ik wel degelijk winsock2.h geinclude heb en ws2_32.lib heb toegevoegd aan de linker.
Help
edit 2:
Heb het gefixed, had me gewoon wat beter moeten inlezen over extern. sock defined in main.cpp en vervolgens een extern in header file gegooid was genoeg
[ Voor 19% gewijzigd door danslo op 01-01-2008 17:12 ]