Doxygen 如何链接到目录的文档

Doxygen 如何链接到目录的文档,doxygen,Doxygen,我添加了一条\dir注释,以提供一个目录附加文档。但我无法使用我所知道的任何doxygen链接技术链接到该目录文档。我的问题是:如何正确链接到目录的文档 下面是我尝试过的一个片段。我得到两个警告,没有生成链接。doxygen手册的自动链接部分讨论了,但没有提到指向目录的链接。是否支持链接到目录文档?如果是这样,我是做错了什么还是这是一个错误?(我现在正在使用1.8.10。1.8.9.1的行为方式与此相同。) 这是我试过的。我已经使用 //\dir cpp/vtutil /// ///

我添加了一条
\dir
注释,以提供一个目录附加文档。但我无法使用我所知道的任何doxygen链接技术链接到该目录文档。我的问题是:如何正确链接到目录的文档

下面是我尝试过的一个片段。我得到两个警告,没有生成链接。doxygen手册的自动链接部分讨论了,但没有提到指向目录的链接。是否支持链接到目录文档?如果是这样,我是做错了什么还是这是一个错误?(我现在正在使用1.8.10。1.8.9.1的行为方式与此相同。)

这是我试过的。我已经使用

//\dir cpp/vtutil
///      
///\此处是目录cpp/vtutil的简要说明
/// 
///\details此处有更详细的描述。
///        
我使用

/\file
///\brief实现vt应用程序类。
/// 
///此文件位于\ref cpp/vtutil目录中。
///那么#cpp/vtutil呢
以下是警告:

warning : unable to resolve reference to `cpp/vtutil' for \ref command
warning : explicit link request to 'cpp' could not be resolved

该文档用于目录,但似乎没有引用它的方法。非常感谢您的帮助。

链接到目录文档页面的正确方法是使用
\ref
命令。目录不支持使用
#
的显式链接

/// \file   
/// \brief  Implements the vt application class.
/// 
/// This file is in the \ref cpp/vtutil directory.
此示例将生成指向
cpp/vtutil
文件夹文档的链接。但是,在使用绝对路径和带有
从路径剥离\u的doxygen配置设置时,确实需要小心。当我使用源代码树中的工作目录运行doxygen时,我可以获得正确的链接引用。但是当我从一个构建目录运行时,它与我的源目录不同,并且需要使用
STRIP\u from\u PATH
,那么我就有问题了


Doxygen在使用
\dir
命令记录目录时使用的路径非常宽容或灵活,但在使用
\ref
命令引用目录时却相当挑剔 被接受的解决方案对我不起作用。我发现链接到目录的唯一方法是使用绝对路径名:

/// \brief Documentation linking to a directory
///
/// The files are in the \ref /home/user/project/include/subdir "include/subdir" directory.
通过使用
\ref target“label”
,我们避免了文档中的完整路径,这当然是由开发环境给出的,与最终用户的安装目录无关

但是我们现在仍然有绝对路径。不同的开发人员可能会有不同的路径,因此上述解决方案只能由单个开发人员使用

相反,我在我的
Doxyfile中添加了以下别名:

ALIASES += "link_to_subdir=\ref @PROJECT_SOURCE_DIR@/include/subdir \"include/subdir\""
现在的文档如下所示:

/// \brief Documentation linking to a directory
///
/// The files are in the \link_to_subdir directory.
Doxyfile.in
是一个文件,CMake将对其进行解析以生成Doxygen使用的
Doxyfile
。我认为这是使用Doxygen的一种相当标准的方法(其他构建生成器具有相同的功能,可以使用它)。例如,我的
Doxyfile.in
包含如下内容:

PROJECT_NAME           = "@PROJECT_NAME@"
PROJECT_NUMBER         = @PROJECT_VERSION@
OUTPUT_DIRECTORY       = @CMAKE_INSTALL_PREFIX@/@DOCUMENTATION_OUTPUT@
INPUT                  = @PROJECT_SOURCE_DIR@/include
在CMake中有一个命令:

configure_file("${CMAKE_CURRENT_LIST_DIR}/documentation/Doxyfile.in" "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile" @ONLY)

因此,CMake将填充项目的根目录,其中显示
@project\u SOURCE\u DIR@
,导致文档中的绝对路径由Doxygen解析,但该路径取决于当前的开发环境。

我创建了一个目录cpp/vtutil,使用文件dir.c和文件vt.c,其中分别包含\dir和\file的内容。我在进一步的默认Doxyfile RECURSIVE中设置为YES。就我所知,我只收到有关显式链接\ref命令链接的消息。关于您的问题以及如何解决这些问题,您有任何进一步的信息吗?我不能为我的生活得到任何链接到目录工作。Doxygen只是说“无法解析引用”,不管我怎么做,但目录的文档在“文件”列表下显示得很好。我甚至尝试将包含到这些文件夹的工作链接的文件页面的xml变灰,并使用在那里找到的链接名,但是当我将它们与\ref一起使用时,它们似乎不起作用。您是否尝试过我的简单示例并在源代码树中运行doxygen?你可能想问一个新问题,并提供确切的细节(在问题或链接中)。我发现,这些关于doxygen的东西随着新版本的改变而改变,所以越具体的细节越好。如果你发布了一个新问题,请删除评论,我会看一看。你写道:“这就是我如何修复这个问题,我认为这是Doxygen的一个bug。”你能不能附上一个小的、自包含的示例(tar或zip中的source+配置文件),让我们重现这个问题?请不要添加外部链接,因为它们可能不会持久。还请指定使用的强氧版本。@albert:我找到了,它链接回这个问题。我没有向追踪者提交问题,因为这需要付出相当大的努力,你们已经有太多的工作要做了,我有一个解决办法,我不介意使用。但我很感谢你们的信息以及你们为这个工具所做的一切。