我有一个以开头的头文件
#if !defined(__GLOBAL_H)
#define __GLOBAL_H
然后是一些代码
#endif
该代码仅包含函数声明,一些包含其他头文件和一些模板函数。但是,当我添加一行代码时,就会出现问题。我收到链接器错误,我添加的函数已在目标文件中定义。我使用 Visual Studio 2012 Premium 作为编译器。我试图从头文件中删除任何现有函数,这也通过编译器。另一方面,如果我向编译器添加任何可能是新的新行,它会拒绝编译,说它已经被定义。有没有人知道可能出了什么问题,或者我是否偶然发现了编译器本身的错误?(我非常怀疑) 编辑:解决方案是将函数声明为头文件,但在 CPP 文件中定义它。但真正的问题是,当我包含一个用于返回头文件中声明的类型的对象的头文件时,它不会编译。它的许多错误“Missing ; in front of *”是在其他头文件中声明的类型。