我现在正在构建一个 C++ DLL 库。今天我遇到了一个令人困惑的问题:在这个库中我可以定义类但不能定义函数。更具体地说,我给出以下代码来说明我的问题:
namespace fundamental
{
class Tree
{
public:
Tree() {};
~Tree() {};
int x;
};
/*int anyfunction()
{
return 1;
}*/
}
上面的定义在头文件中,这个文件会被其他文件调用。我的问题是,如果我注释了函数部分(int anyfunction())一切都很好,但是如果我添加了这个函数,我会得到以下错误:
page_analysis.obj : error LNK2005: "int __cdecl fundamental::anyfunction(void)" (?anyfunction@fundamental@@YAHXZ) already defined in geo_box.obj
1>pa_region_properties.obj : error LNK2005: "int __cdecl fundamental::anyfunction(void)" (?anyfunction@fundamental@@YAHXZ) already defined in geo_box.obj
我的问题是为什么我只会为函数而不是类得到 LNK2005 错误。有任何想法吗?