【发布时间】:2019-11-27 21:42:22
【问题描述】:
这是我的问题:当我为面向对象的 Fortran 代码生成 Doxygen 文档时,派生类没有正确链接到基类。派生类在单独的模块中定义,以便将它们组织成“短”文件。
如果我在模块mod_myclass 中有类myclass,在模块mod_myderclass 中有一个派生类myderclass,Doxygen 绘制的层次结构如下所示:
而不是简单地:mod_myclass::Myclass <----- mod_myderclass::Myderclass.
我尝试切换Doxyfile的不同选项,如OPTIMIZE_FOR_FORTRAN或HIDE_SCOPE_NAMES,没有成功。
为了说明这一点,这是文件mod_myclass.f90:
!--------------------------------------------------------------------------------------------------
! 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
并且是包含派生类mod_myderclass.f90的文件:
!--------------------------------------------------------------------------------------------------
! 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
【问题讨论】:
-
你使用了哪个版本的 doxygen?可能有助于通过原始问题中的图像显示您所获得的信息,并在此处根据该图像说明您的期望,而坚果只是有一些文字解释。
-
我正在使用 Doxygen v1.8.11。我添加了输出的图像。它实际上看起来像一个大写问题:当我删除 Fortran 文件中类名首字母的大写时,我最终得到了正确的输出。然而,如果我想保留大写的类名,我发现无论 Doxyfile 中字段
CASE_SENSE_NAMES的值是什么,我都会得到错误的输出。