У меня возникли проблемы с использованием RapidXML для анализа строки. Я получаю сообщение об ошибке из Eclipse, утверждающее, что функция синтаксического анализа не существует.
make all
Building file: ../search.cpp
Invoking: Cross G++ Compiler
g++ -DDEBUG -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"search.d" -MT"search.d" -o "search.o" "../search.cpp"
../search.cpp: In function ‘void search(CURL*, CURLcode, std::string, std::string)’:
../search.cpp:29:27: error: no matching function for call to ‘rapidxml::xml_document<>::parse(const char*)’
../search.cpp:29:27: note: candidate is:
../rapidxml-1.13/rapidxml.hpp:1381:14: note: template<int Flags> void rapidxml::xml_document::parse(Ch*) [with int Flags = Flags, Ch = char]
make: *** [search.o] Error 1
Следующий код вызывает ошибку:
rapidxml::xml_document<> doc; // This has no errors
doc.parse<0>(data.c_str()); // This line raises the error (data is a string)
Для справки здесь приведена онлайн-документация: http://rapidxml.sourceforge.net/manual.html#namespacerapidxml_1parsing
RapidXML поставляется в виде четырех заголовочных файлов:
- Rapidxml_iterators.hpp
- Rapidxml_print.hpp ‹ — содержит ошибки, но сборка с ними выполнена успешно
- Rapidxml_utils.hpp ‹ — содержит ошибки, но сборка с ними выполнена успешно.
- Rapidxml.hpp ‹ -- связан программой, содержит функцию разбора
Как мне устранить ошибку в моем коде, и нужно ли мне сначала как-то разрешить ошибки компилятора в заголовках?