I was under the impression that header guards solve the problem of redefinition. I\'m getting linker errors that say there are redefinitions in the .obj files. This is the h
Header guards solve the problem of including the same header twice or hidden recursion of includes, not double definition.
If you include the same header in different translation units, header guards won't help.
The solution is to never declare variables in header files. If you need to share variables, use the extern
keyword in the header, and declare the actual variables in one of the translation units.