Hyperlink 自动链接到doxygen中方法参数描述中的Fortran类
我试图让doxygen在方法的参数描述中自动生成到代码的另一个模块中的Fortran类的链接 比如说 是一个类子例程的html文档,它将自己的类和另一个模块中定义的另一个类作为参数 类Hyperlink 自动链接到doxygen中方法参数描述中的Fortran类,hyperlink,fortran,doxygen,Hyperlink,Fortran,Doxygen,我试图让doxygen在方法的参数描述中自动生成到代码的另一个模块中的Fortran类的链接 比如说 是一个类子例程的html文档,它将自己的类和另一个模块中定义的另一个类作为参数 类InnerProducts的链接已正确自动创建,而类ModelConfiguration的链接未正确创建,我必须在说明中手动添加链接 下面是init_internal_products例程的标题,上面的链接中显示了该例程的html文档: !> Initialization routine for the i
InnerProducts
的链接已正确自动创建,而类ModelConfiguration
的链接未正确创建,我必须在说明中手动添加链接
下面是init_internal_products
例程的标题,上面的链接中显示了该例程的html文档:
!> Initialization routine for the inner products functions.
!> @param[in,out] inner_products Inner products global object to initialize
!> @param[in] model_config Global model configuration (params::modelconfiguration) object to initialize the inner products with
SUBROUTINE init_inner_products(inner_products, model_config)
CLASS(InnerProducts), INTENT(INOUT), TARGET :: inner_products
CLASS(ModelConfiguration), INTENT(IN), TARGET :: model_config
我希望避免手动链接,那么如何强制/配置doxygen尝试链接到外部模块中的类
编辑
最后,我没有发现任何名称冲突。我认为这是一个可能的解释,但事实并非如此。更奇怪的是,所有其他类在文档中都有很好的链接。在下面显示使用各种其他类的对象的详细信息的图片上,可以看到问题只发生在类ModelConfiguration
上,我不知道为什么
以下是上述类别的定义:
!> The general class holding the model configuration.
TYPE, PUBLIC :: ModelConfiguration
TYPE(PhysicsConfiguration) :: physics
TYPE(ModesConfiguration) :: modes
TYPE(IntegrationParameters) :: integration
LOGICAL :: initialized = .FALSE.
CONTAINS
PROCEDURE :: init => init_model_config !< Model configuration initialization routine
PROCEDURE :: clean => clean_model_config !< Model configuration cleaning routine
END TYPE ModelConfiguration
!>保存模型配置的通用类。
类型,PUBLIC::ModelConfiguration
类型(物理配置)::物理
类型(模式配置)::模式
类型(IntegrationParameters)::集成
逻辑::已初始化=.FALSE。
包含
过程::init=>init_model_config!<模型配置初始化例程
过程::clean=>clean_model_config!<模型配置清理例程
端类型模型配置
这是非常基本的。问题只涉及我代码的类
ModelConfiguration
,我意识到它是唯一一个导入了关键字的类。例如,在我问题的第二个图的类Model
中,导入类ModelConfiguration
,如下所示:
MODULE model_def
USE params, only: ModelConfiguration
...
删除唯一的关键字(导入整个params模块)会使doxygen链接在文档中正确:
所以我猜这是由于doxygen中的一个bug(我使用的是doxygen当前的稳定版本1.8.13)。既然我可以导入整个模块,我就这样离开它。我已经调查了doxygen中的问题
- 该问题并非仅由
关键字引起
如果我们有:
use Params
我们也会遇到同样的问题
由于Fortran不区分大小写,doxygen将所有代码(字符串除外)转换为小写,但在USE
语句的情况下,还没有这样做。
已在github上提交了建议的修补程序:
解决方法是将use
语句中的所有名称转换为小写
编辑建议的修补程序已集成到doxygen的主版本中。doxygen的版本是什么?您是否设置了OPTIMIZE\u FOR\u FORTRAN=YES
?您能否创建一个完整的示例?是的,它是为FORTRAN优化的,但现在我认为这是代码中的名称冲突,而不是Doxygen问题。我将尝试确认这一点。@albert无论如何,我将很快在github上发布这段代码,如果问题仍然存在,我将在此处添加链接。github链接的问题是它可能不会持久(因为github代码可能会更改),而且github上的问题将是“大”的,难以调试(帮助者必须投入更多的时间来找出问题!)。最好提取一个小例子来说明问题。有趣的观察结果!使用更新版本的doxygen(版本1.8.18或master)时会发生什么会很好。当然值得从doxygen方面进一步探索。