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 の 3 つのコンストラクターです。
treeNode(T* element1);
treeNode(T* element1, T* parent1);
treeNode(T* element1, T* parent1, vector<treeNode<T>*> child1);
このエラーを修正するための助けをいただければ幸いです。ありがとうございました!