我的程序中有一个非常简单的文件系统。
有:main.cpp其中包括worker.h,worker.h和worker.cpp其中包括worker.h
worker.h具有Header防护,并声明了main.cpp和worker.cpp都需要的一些变量,并且它具有一些函数声明。
#ifndef __WORKER_H_INCLUDED__
#define __WORKER_H_INCLUDED__
bool x;
int y;
void somefunction( int w, int e );
#endif
通过其他一些线程和google结果,我了解到Header Guard保护您免受单个源文件中的多个包含,而不是多个源文件的影响。
所以我可以期待链接器错误。
我的问题是
最佳答案
因为您定义了变量。这样,它们仅被声明:
extern bool x;
extern int y;
但是您必须在cpp文件中定义它们。 :
bool x = true;
int y = 42;
关于c++ - 包含头文件错误:多个定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13680065/