如何链接到目录的文档

时间:2015-07-01 17:15:06

标签: doxygen

我添加了function chooseStrapColour() { var black = "images/straps/oxford-black.png" var white = "images/straps/oxford-white.png" var colourRange = document.getElementById("strapOptions").value; var src = (colourRange === "white") ? white : black; document.getElementById("oxStrap").src = src; } 条评论,为目录提供了附加文档。但我无法使用我所知道的任何doxygen链接技术链接到该目录文档。我的问题是:如何正确链接到目录的文档?

以下是我尝试过的内容片段。我收到两个警告,没有生成链接。 doxygen手册的自动链接部分讨论Links to other members,但没有提到dirs的链接。是否支持链接到目录文档?如果是这样,我做错了什么或这是一个错误? (我现在正在使用1.8.10.1.8.9.1表现相同。)

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

记录了目录
\dir

我使用

引用目录
/// \dir cpp/vtutil 
///      
/// \brief Brief description of the dir cpp/vtutil goes here
/// 
/// \details A more detailed description goes here. 
///        

以下是警告:

/// \file   
/// \brief  Implements the vt application class.
/// 
/// This file is in the \ref cpp/vtutil directory.
/// What about #cpp/vtutil

文档用于目录,但似乎没有办法引用它。我衷心感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

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

/// \file   
/// \brief  Implements the vt application class.
/// 
/// This file is in the \ref cpp/vtutil directory.

此示例将生成指向cpp/vtutil文件夹文档的链接。但是,在使用绝对路径和使用STRIP_FROM_PATH的doxygen配置设置时,需要注意。当我使用源代码树中的工作目录运行doxygen时,我可以获得正确的链接引用。但是,当我从一个与我的源目录不同的构建目录运行,并且需要使用STRIP_FROM_PATH时,我就遇到了问题。

使用\dir命令记录目录时,Doxygen对于使用的路径非常宽容或灵活,但在使用\ref命令引用它时,它非常挑剔。

答案 1 :(得分:1)

这就是我解决此问题的方式,我将其视为Doxygen中的错误。

接受的解决方案对我不起作用。我发现链接到目录的唯一方法是使用绝对路径名:

/// \brief Documentation linking to a directory
///
/// The files are in the \ref /home/user/project/include/subdir "include/subdir" directory.

通过使用\ref target "label",我们避免了文档中的完整路径,该路径当然是由开发环境提供的,并且与最终用户的安装目录无关。

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

相反,我在Doxyfile.in文件中添加了以下别名:

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_SOURCE_DIR@,该目录将导致Doxygen解析的文档中的绝对路径,但该路径取决于当前的开发环境。