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

error LNK1169: one or more multiply defined symbols found - global function

本文关键字:定义 符号 函数 全局 一个 LNK1169 错误      更新时间:2023-10-16

我有这个:

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..,我仍然得到错误。如何解决这个问题?

您要么只在header a.h中声明函数并在某些cpp模块中定义它,要么将其定义为内联函数。例如

inline void func(){} 

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