错误LNK1169:找到一个或多个多重定义的符号 - 全局函数

时间:2014-06-10 09:47:36

标签: c++ function compiler-errors

我有这个:

a.h

class a
{
}
void func(){} //some golobal function

b.h

include "a.h"
class b : public a
{
}

b.cpp

#include "b.h"

我收到错误:

error LNK1169: one or more multiply defined symbols found

我认为我得到了错误,因为全局函数定义了两次。我尝试将extern放在函数之前但是不起作用。我也使用#ifndef..,我仍然会收到错误。怎么能解决这个问题呢?

1 个答案:

答案 0 :(得分:3)

您要么只在头a.h中声明该函数,要么在某个cpp模块中定义它,或者将其定义为内联函数。例如

inline void func(){} 

否则函数将被定义多次,因为cpp模块包含头文件a.h或b.h。