Why aren't include guards or pragma once working?

前端 未结 3 705
逝去的感伤
逝去的感伤 2021-02-08 09:47

I\'m compiling some code that relies on include guards to prevent multiple definitions of objects and functions, but Visual Studio 2008 is giving me link errors that there are m

相关标签:
3条回答
  • 2021-02-08 10:01

    This can also be caused by using different versions of the cstd lib from other library's linked in. Check under the c++/Code generation section and make sure all your projects are using the same settings.

    0 讨论(0)
  • 2021-02-08 10:02

    If they are linker errors, the most likely cause is probably non-inline functions defined in the header.

    If you have a non-inline function in a header that is included in more than one source file, it will be defined in each of those source files ("translation units"), thus the function will be defined more than once, hence the multiple definitions error.

    0 讨论(0)
  • 2021-02-08 10:04

    If you're getting linker errors... are you sure you're not 1) actually defining a function twice in code or 2) trying to do something silly like #include a source file (as opposed to a header file)?

    0 讨论(0)
提交回复
热议问题