【问题标题】:With Doxygen output chmcmd produces fake error messages使用 Doxygen 输出 chmcmd 会产生虚假的错误消息
【发布时间】:2017-03-19 17:32:56
【问题描述】:

我正在使用 chmcmd 从 Doxygen 文件创建 .chm 文档。 后者向我显示(假)错误消息,例如

错误:锚[HTML页面,从包含@page的文件生成]#[带有标签的@section或@subsection,都在同一个文件中]未定义;首先使用[HTML页面,从包含@page的文件生成]

在 HTML 文件中,我看到了行

<li><a class="el" href="User_Guide.html#USER_GUIDE_SETUP_AND_DATA_FLOWS">SETUP AND DATA FLOWS</a><ol type="a">

<h1><a class="anchor" id="USER_GUIDE_SETUP_AND_DATA_FLOWS"></a>
SETUP AND DATA FLOWS</h1>

在我看来,应该没问题。错误信息是假的,因为 .html 文件和 .chm 文件都可以正常工作。它似乎无害,但会产生相当大的噪音,恐怕我会错过一些真正的错误。

我可以反对吗?

【问题讨论】:

    标签: html doxygen chm


    【解决方案1】:

    这看起来不像是 chmcmd 错误。 “@page”或“@section”对 chmcmd 没有任何意义。 Chmcmd 没有生成任何帮助,它只是编译,所以从这个角度来看,该消息也不合逻辑。

    以防万一,我确定了来源,没有命中。

    所以可能不是 chmcmd,但可能错误来自 doxygen html-for-chm 输出模块。

    【讨论】:

      【解决方案2】:

      特殊字符会导致 HTML 帮助编译器出现问题(请参阅随附的链接)。我知道这不是你描述的问题。我不使用ChmCmd,所以很遗憾无法重现您的错误消息。

      但是,帮助和手册论坛中的以下主题似乎提供了一些信息Linking to anchors in chm topics from C#。请搜索:

      Tim Green 的跟进:请注意,如果所讨论的主题是 CHM 中的第一个主题,那么这就是 CHM 系统中的一个已知错误并且是不可避免的。如果它是单独的而不是在一个章节中,它只是不与主题同步。这一直是 CHM 中的一个问题,微软从未纠正过它。 TOC 与 CHM 中主题的同步也超出了 Help & Manual 的控制范围;它完全由微软的查看器控制。

      所以,我认为您的错误消息中的 "... first use ..." 与此线程中的问题有关。

      更多信息来自我们的 HelpwareGroup 网站:

      CHM Compiler crashed during compilation

      HTMLHelp CHM Frequently Asked Questions

      顺便说一句,C# 开发人员可能会发现他们的 CHM 格式的文档和电子书无法打开,因为他们将 CHM 文件存储在诸如“C:\E-books\C#\”之类的目录中。哈希字符表示 HTML 中的锚点,因此 CHM 查看器无法正确解析路径并检索内容。要解决此问题,请从目录名称中删除“#”(哈希)字符。还要避免在目录名称中使用“?”、“&”和“+”字符。

      【讨论】:

      • 感谢您的回复,我正在记录 c++,并且我使用 Doxygen 输出,无需编辑。在我在帖子中展示的台词中,这两句台词在我看来是完美的。根据后续情况,chmcmd 对 chm 系统的实现似乎太完美了:)。
      • @katang 是的,HTML 锚链接很干净,也适用于 CHM。
      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多