C++ 链接器错误未定义符号C++;

C++ 链接器错误未定义符号C++;,c++,linker-errors,C++,Linker Errors,链接器错误给我带来了很多麻烦。这是我最近收到的一张 Undefined symbols for architecture x86_64: "XMLObject::~XMLObject()", referenced from: Hash::addFile(char*, XMLObject) in hash.o std::__1::__split_buffer<XMLObject, std::__1::allocator<XMLObject>&>::~__sp

链接器错误给我带来了很多麻烦。这是我最近收到的一张

Undefined symbols for architecture x86_64:
"XMLObject::~XMLObject()", referenced from:
  Hash::addFile(char*, XMLObject) in hash.o
  std::__1::__split_buffer<XMLObject, std::__1::allocator<XMLObject>&>::~__split_buffer() in hash.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

它看起来像是您添加到项目中的
hash.h
hash.cpp
,但该模块依赖于另一个模块,可能是
xmlobject.h
xmlobject.cpp


解决方案:将这些其他文件也添加到项目中。

在.h和.cpp中显示
Hash::addFile()的代码。
。C++非常好,如果你被困在C++ 03中,那么有很多合适的实现在互联网上,例如在互联网上。除非你这样做是为了学习,但是你可能不应该把它具体化到其他类型的物体上。我必须为这个项目做准备。这是一项学校作业,我们必须创建自己的作业。对于所有去投诉我要求解决家庭作业的人来说,这个项目是创建一个XML搜索引擎,所以哈希表只是其中的一小部分。不仅仅是硬件problem@user3525456:如果项目中已经存在
xmlobject.cpp
,那么问题可能是它缺少类析构函数的定义:
xmlobject::~xmlobject()
,因此应该编写它。或者它被写入另一个文件?请注意,C++中没有任何东西可以阻止您在多个文件中分割成员类定义。
void Hash::addObj(char* id, XMLObject num)
{
int index = hash(id);
if(hashTable[index]->identifier == "empty") // checks empty bucket
{
    hashTable[index]->identifier = id;
    hashTable[index]->files.push_back(num);
}
else // checks list
{
    bool check = false; // true if id word was found
    item* ptr = hashTable[index];
    while(ptr != nullptr)
    {
        if(ptr->identifier == id)
        {
            ptr->files.push_back(num);
            check = true;
            break;
        }
        ptr = ptr->next;
    }
    if(!check)
    {
        item* n = new item;
        n->identifier = id;
        n->files.push_back(num);
        n->next = nullptr;
        ptr = n;
    }
}
}