gpt4 book ai didi

fortran - 如何使用 doxygen 内联源代码

转载 作者:行者123 更新时间:2023-12-04 14:35:11 26 4
gpt4 key购买 nike

我想用 doxygen 记录一个包含函数的 Fortran 模块。

我的问题是,我找不到将函数体包含在函数文档中的方法。只有位置的链接,没有实际的源代码。

目前,我的源代码看起来像像这样:

!> @brief      Get a starting time.
!> @details Get an object with time information.
!> @return returns the time with high precision
FUNCTION get_start_time() RESULT(stime)
TYPE (time) :: stime

CALL SYSTEM_CLOCK(stime%count, stime%rate, stime%max)
END FUNCTION

我的 doxygen 配置(SOURCES 部分)如下所示:

SOURCE_BROWSER         = YES
INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES

我还尝试使用 @code@endcode 标志来标记源,但这也不起作用。

我应该怎么做,才能将源代码直接拿到文档中?


第一次编辑:我尝试了@cheeseminer 的解决方案。所以上面的代码现在看起来像

!> @brief      Get a starting time.
!> @details Get an object with time information.
!> @return returns the time with high precision
!> @par Code
!> @snippet folder/file.F90 get_start_time
!! [get_start_time]
FUNCTION get_start_time() RESULT(stime)
TYPE (time) :: stime

CALL SYSTEM_CLOCK(stime%count, stime%rate, stime%max)
END FUNCTION
!! [get_start_time]

不幸的是,block-id 命令(前面带有 !! 的命令)出现在文档和/或完整的源代码中。 在 Fortran 中执行此操作的正确方法是什么?

或者是否有更好的方法来解决我最初的问题?


第二次编辑:我找到了一个隐藏 block ID 的解决方法。我将它们包装在 @internal 命令中。

!> @internal [get_start_time]

第三次编辑:我现在使用@Michael 的建议将 block-id 包含为 HTML-Comment。

!> <!-- [get_start_time] -->

第 4 次编辑: 我发布了一个跟进 question关于别名。

最佳答案

我认为您正在寻找的是@snippet。相关的手册页是 here .您还需要在 doxyfile 中提供“示例”代码的路径。

@code 更像是一个格式化命令。如果您只有几个简短的这样的部分,您最好将代码复制到注释中并使用 @code 对其进行格式化,但如果代码示例可能会更改,那么您可能应该使用 snippet 尽管它在源代码中引入了困惑。

关于fortran - 如何使用 doxygen 内联源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21335076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com