我正在使用 RapidXML 解析 C++ 中的 XML 文件。我制作了 treeNode.h 和 treeNode.cpp 文件。我正在制作一个 treeNode 对象来帮助我进行解析。但是,当我尝试这样做时,它给了我一个未定义的参考错误。给我错误的代码行(我认为)是以下行:
treeNode<xml_node<> > * tn = new treeNode<xml_node<> >(root_node);
如果你想知道我从哪里得到 root_node,它在我的 main.cpp 中定义如下:
xml_document<> doc;
doc.parse<0>(&buffer[0]);
xml_node<> * root_node = doc.first_node();
错误信息是这样的:
undefined reference to `treeNode<rapidxml::xml_node<char> >::treeNode(rapidxml::xml_node<char>*)'
collect2: ld returned 1 exit status
这些是我在 treeNode.h 中的三个构造函数:
treeNode(T* element1);
treeNode(T* element1, T* parent1);
treeNode(T* element1, T* parent1, vector<treeNode<T>*> child1);
任何有关修复此错误的帮助将不胜感激。谢谢!