Fortran 当派生类型位于单独的模块中时,如何使Doxygen正确显示类层次结构
这是我的问题:当我为面向对象的Fortran代码生成Doxygen文档时,派生类没有正确地链接到基类。派生类在单独的模块中定义,以便将它们组织成“短”文件 如果在moduleFortran 当派生类型位于单独的模块中时,如何使Doxygen正确显示类层次结构,fortran,doxygen,Fortran,Doxygen,这是我的问题:当我为面向对象的Fortran代码生成Doxygen文档时,派生类没有正确地链接到基类。派生类在单独的模块中定义,以便将它们组织成“短”文件 如果在modulemod\u myclass中有类myclass,在modulemod\u myderclass中有派生类myderclass,则Doxygen绘制的层次结构如下所示: 而不是简单地: mod_myclass::myclassDoxygen版本1.8.11有点旧(2015年12月),当前版本是1.8.15。 在示例上运行1.
mod\u myclass
中有类myclass
,在modulemod\u myderclass
中有派生类myderclass
,则Doxygen绘制的层次结构如下所示:
而不是简单地:mod_myclass::myclassDoxygen版本1.8.11有点旧(2015年12月),当前版本是1.8.15。
在示例上运行1.8.15时,我得到:
这是你期望的吗?在这种情况下,请更新您的doxygen版本。您使用的是哪个版本的doxygen?通过原始问题中的图像显示您得到了什么,并在这里指出您基于该图像期望得到什么,这可能很有用,我们只需要进行一些文本解释。我使用的是Doxygen v1.8.11。我添加了输出的图像。它实际上看起来像是一个大写问题:当我在Fortran文件中删除类名首字母的大写字母时,我得到了正确的输出。然而,如果我想保留大写的类名,我会发现无论doxy文件中CASE\u SENSE\u names
字段的值是多少,我都会得到错误的输出。这确实是我所期望的。然而,我从昨天开始编辑MWE,因为我用来写它的复制/粘贴去掉了大写字母。您确定运行的示例具有大写的类名吗?我刚刚用doxygen v1.8.15进行了尝试,得到了与以前相同的错误结果。。。谢谢你的帮助,我很感激。Fortran不区分大小写,所以所有的名字都翻译成小写。如果您有大写字符和图片不正确的情况,请让我们知道。我只是在这里再次获取站点的代码并重新运行,看起来很正常(在doxy文件中,我只设置了have_DOT=YES
,其余为默认值;使用doxygen-x
,很容易检查doxygen 1.8.15)。
!--------------------------------------------------------------------------------------------------
! FILE mod_myclass.f90
!> @brief Definition of base class myclass
!! @file mod_myclass.f90
!--------------------------------------------------------------------------------------------------
!--------------------------------------------------------------------------------------------------
! MODULE mod_myclass
!> @brief Define base class myclass
!--------------------------------------------------------------------------------------------------
MODULE mod_myclass
IMPLICIT NONE
!--------------------------------------------------------------------------------------------------
! CLASS Myclass
!> @brief base class myclass
!--------------------------------------------------------------------------------------------------
TYPE :: Myclass
END TYPE
END MODULE
!--------------------------------------------------------------------------------------------------
! FILE mod_myderclass.f90
!> @brief Definition of derived class myderclass
!! @file mod_myderclass.f90
!--------------------------------------------------------------------------------------------------
!--------------------------------------------------------------------------------------------------
! MODULE mod_myderclass
!> @brief Define derived class myclass
!--------------------------------------------------------------------------------------------------
MODULE mod_myderclass
USE mod_myclass
IMPLICIT NONE
!--------------------------------------------------------------------------------------------------
! CLASS myderclass
!> @brief derived class myderclass
!--------------------------------------------------------------------------------------------------
TYPE, EXTENDS(Myclass) :: Myderclass
END TYPE
END MODULE