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
我正在从 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