RapidXML:无法打印-编译时错误

尼古拉斯·玛亚(Nycholas Maia)

我正在尝试使用C ++应用程序中的RapidXML库在控制台中打印XML文档数据。

我在这里遵循RapidXML手册链接,但是出现编译时错误。

这是我的C ++代码:

#include <iostream>
#include "rapidxml.hpp"
#include "rapidxml_utils.hpp"
#include "rapidxml_print.hpp"

int main() {
    rapidxml::file<> xmlFile("beerJournal.xml");
    rapidxml::xml_document<> doc;
    doc.parse<0>(xmlFile.data());

    std::cout << doc;

    return 0;
}

这是错误:

rapidxml_print.hpp:115: error: ‘print_children’ was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation [-fpermissive]
                 out = print_children(out, node, flags, indent);
                       ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

rapidxml_print.hpp:169: ‘template<class OutIt, class Ch> OutIt rapidxml::internal::print_children(OutIt, const rapidxml::xml_node<Ch>*, int, int)’ declared here, later in the translation unit
         inline OutIt print_children(OutIt out, const xml_node<Ch> *node, int flags, int indent)
                      ^~~~~~~~~~~~~~

观察:我已经尝试了手册(上面的链接)中介绍的其他两种RapidXML打印方法。

我的设置:

  • Ubuntu 19 x64
  • G ++ 8.3.0
  • RapidXML 1.13
  • Qt Creator IDE 4.11.0
  • Qt 5.14.0
乔尔·博登曼

过去我遇到过同样的问题。从那以后此SO答案中提出的解决方法一直非常适合我的所有GCC构建。

总结另一个答案的信息:归结为在GCC 4.7中进行的名称查找更改。解决方法包括创建一个文件rapidxml_ext.hpp,其内容如下。然后包括rapidxml_ext.hpp在您的客户端应用程序/库中。

rapidxml_ext.hpp

#pragma once

#include "rapidxml.hpp"

// Adding declarations to make it compatible with gcc 4.7 and greater
// See https://stackoverflow.com/a/55408678
namespace rapidxml {
    namespace internal {
        template <class OutIt, class Ch>
        inline OutIt print_children(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_attributes(OutIt out, const xml_node<Ch>* node, int flags);

        template <class OutIt, class Ch>
        inline OutIt print_data_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_cdata_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_element_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_declaration_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_comment_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_doctype_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);

        template <class OutIt, class Ch>
        inline OutIt print_pi_node(OutIt out, const xml_node<Ch>* node, int flags, int indent);
    }
}

#include "rapidxml_print.hpp"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java编译时无法到达的代码错误

来自分类Dev

尝试从struct打印时出现编译器错误

来自分类Dev

Haskell在Java编译时无法捕获哪些类型的错误?

来自分类Dev

编译时错误-无法通过实例引用访问成员

来自分类Dev

“ C扩展无法编译'错误。-安装Flask时

来自分类Dev

Spark / SQL:编译时出现.toDF()错误,但IntelliJ无法识别

来自分类Dev

此代码无法正常工作,编译时显示错误?

来自分类Dev

编译时出现错误:无法实例化类

来自分类Dev

当我尝试对EJS文件使用include时,无法编译。(错误:子编译失败。)

来自分类Dev

编译打印时出错

来自分类Dev

在python中“重新编译”时无法正确打印

来自分类Dev

C:编译时变量全局错误:创建共享项目时无法使用

来自分类Dev

尝试在Rust v0.13.0中打印整数时发生编译错误

来自分类Dev

尝试打印出向量内容时出现编译器错误

来自分类Dev

尝试打印最大框的体积以及长度,宽度和高度时出现编译错误

来自分类Dev

声明数组时出现编译器错误:编译器无法对...不同的子表达式进行类型检查

来自分类Dev

当我尝试使用递归打印 1-10 个数字时,mingw gcc 编译器给出了一个我无法理解的错误

来自分类Dev

在ghci中加载已编译的模块时出现“无法加载接口”错误

来自分类Dev

PHP 7致命错误:static :: class无法用于编译时类名称解析

来自分类Dev

Rust错误:在编译时无法知道类型(dyn std :: error :: Error +'static)的值的大小

来自分类Dev

sbt在编译时抛出AssertionError,并出现无法识别的错误消息

来自分类Dev

编译时出现g ++无法识别的调试输出级别'db'错误

来自分类Dev

编译时出现g ++无法识别的调试输出级别'db'错误

来自分类Dev

在ghci中加载已编译的模块时出现“无法加载接口”错误

来自分类Dev

GWT编译错误:不在src / main / java中时无法找到入口点

来自分类Dev

在onClick中出现编译时错误-无法解决“上下文”

来自分类Dev

调用方法时出错-java.lang.RuntimeException:无法编译的源代码-错误的树类型:<any>

来自分类Dev

添加-lrt时无法跟踪编译器错误“未定义的引用”

来自分类Dev

使用VS2017编译时无法打开文件写入错误

Related 相关文章

  1. 1

    Java编译时无法到达的代码错误

  2. 2

    尝试从struct打印时出现编译器错误

  3. 3

    Haskell在Java编译时无法捕获哪些类型的错误?

  4. 4

    编译时错误-无法通过实例引用访问成员

  5. 5

    “ C扩展无法编译'错误。-安装Flask时

  6. 6

    Spark / SQL:编译时出现.toDF()错误,但IntelliJ无法识别

  7. 7

    此代码无法正常工作,编译时显示错误?

  8. 8

    编译时出现错误:无法实例化类

  9. 9

    当我尝试对EJS文件使用include时,无法编译。(错误:子编译失败。)

  10. 10

    编译打印时出错

  11. 11

    在python中“重新编译”时无法正确打印

  12. 12

    C:编译时变量全局错误:创建共享项目时无法使用

  13. 13

    尝试在Rust v0.13.0中打印整数时发生编译错误

  14. 14

    尝试打印出向量内容时出现编译器错误

  15. 15

    尝试打印最大框的体积以及长度,宽度和高度时出现编译错误

  16. 16

    声明数组时出现编译器错误:编译器无法对...不同的子表达式进行类型检查

  17. 17

    当我尝试使用递归打印 1-10 个数字时,mingw gcc 编译器给出了一个我无法理解的错误

  18. 18

    在ghci中加载已编译的模块时出现“无法加载接口”错误

  19. 19

    PHP 7致命错误:static :: class无法用于编译时类名称解析

  20. 20

    Rust错误:在编译时无法知道类型(dyn std :: error :: Error +'static)的值的大小

  21. 21

    sbt在编译时抛出AssertionError,并出现无法识别的错误消息

  22. 22

    编译时出现g ++无法识别的调试输出级别'db'错误

  23. 23

    编译时出现g ++无法识别的调试输出级别'db'错误

  24. 24

    在ghci中加载已编译的模块时出现“无法加载接口”错误

  25. 25

    GWT编译错误:不在src / main / java中时无法找到入口点

  26. 26

    在onClick中出现编译时错误-无法解决“上下文”

  27. 27

    调用方法时出错-java.lang.RuntimeException:无法编译的源代码-错误的树类型:<any>

  28. 28

    添加-lrt时无法跟踪编译器错误“未定义的引用”

  29. 29

    使用VS2017编译时无法打开文件写入错误

热门标签

归档