Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran 当派生类型位于单独的模块中时,如何使Doxygen正确显示类层次结构_Fortran_Doxygen - Fatal编程技术网

Fortran 当派生类型位于单独的模块中时,如何使Doxygen正确显示类层次结构

Fortran 当派生类型位于单独的模块中时,如何使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.

这是我的问题:当我为面向对象的Fortran代码生成Doxygen文档时,派生类没有正确地链接到基类。派生类在单独的模块中定义,以便将它们组织成“短”文件

如果在module
mod\u myclass
中有类
myclass
,在module
mod\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