DoxygenLayout.xml 解析未找到明确的 link 请求

DoxygenLayout.xml parsing not finding explicit link request

我正在从 doxygen 1.8.4 迁移到 1.8.8。我的 DoxygenLayout.xml 文件有这样一个条目:

<tab type="user" url="@ref FAQ" visible="yes" title="FAQ" intro=""/>

在我的 Doxyfile 中,我的 INPUT 包含 "faq.htm" 并且我在 Doxy 输出中看到:

Reading /git/bfg_iOS_sdk/bfg_internal/docs/htmlFramework/faq.htm...

我的 "faq.htm" 文件是这样开头的:

/** 
\page FAQ Frequently Asked Questions
\ingroup FAQ
\{

对于 Doxy 1.8.4,没有问题。在 1.8.8 中,我看到了这些警告:

explicit link request to 'FAQ' in layout file 'DoxygenLayout.xml' could not be resolved

我做错了什么?

更新

我正在(并且一直在)使用这些文件模式:

FILE_PATTERNS          = *.m \
                         *.mm \
                         *.html \
                         *.h \
                         *.htm

我继续在 Doxygen 1.8.10 中看到这些警告,并且我的文档集无法正确构建。

发生此错误是因为您在 DoxygenLayout.xml 中引用了 FAQ 组,但没有文件与该组关联。

在这种情况下,原因可能是因为您的 html 文件没有被 Doxygen 读取和解析。这是因为默认的 DoxygenConfig FILE_PATTERNS 参数默认不包含 html.

尝试更改您的 FILE_PATTERNS 以包含 html 和所有其他所需的扩展名,也许像这样:

FILE_PATTERNS = *.html *.htm \
                *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ \
                *.inl *.idl *.ddl *.odl *.h *.hh *.hxx *.hpp *.h++ *.cs \
                *.d *.php *.php4 *.php5 *.phtml *.inc *.m *.markdown *.md \
                *.mm *.dox *.py *.f90 *.f *.for *.tcl *.vhd *.vhdl *.ucf \
                *.qsf *.as *.js

您还可以更改 EXTENSION_MAPPING 以确定哪个解析器将用于您的 HTML 文件,因为没有默认的 HTML 解析器。你提到的语法对我来说很好用。

我不确定为什么这会从版本 1.8.4 更改为 1.8.8。对于 1.8.10 版本,bug report 暗示这是一个常见错误,开发人员甚至添加了文档来澄清此行为。

来自 OP 的注释 -- 我需要这个映射:

EXTENSION_MAPPING      = htm=Objective-C html=Objective-C