如何使用Doxygen和Doxygen :: Filter :: Perl为Perl子例程生成文档?

时间:2015-03-13 13:41:33

标签: perl doxygen

我试图弄清楚如何使用Doxygen::Filter::Perl为Perl文件生成文档。我从一个非常简单的文件开始,看看我是否可以让它工作(test_doxygen.pl):

#! /usr/bin/env perl
#** @file test_doxygen.pl
#  @brief  Testing Doxygen using Doxygen::Filter::Perl
#
# Description of the purpose of this file
#
#  @author Håkon Hægland (hakon.hagland@gmail.com)
#
#  @bug No known bugs.
#
#*

#** @class main
# The main class
#*

use strict;
use warnings;

my $b = add_one(1);

#** @function public add_one ($par1)
# @brief A brief description of the function
#
# A detailed description of the function
# @params $par1   required  A number
# @retval value   Input value plus one1
#*
sub add_one {
    my ($par1) = @_;

    return $par1 + 1;
}

然后我安装了Doxygen :: Filter :: Perl并使用了metacpan.org(the link is here)上的软件包维护者提供的Doxyfile配置文件 并将其放在与上面脚本相同的目录中。我更改了Doxyfile中的一行:INPUT标记的值已从lib更改为空字符串,以便仅搜索当前目录中的源文件..

我使用的是Ubuntu 14.04,所以我用sudo apt-get install doxygen安装了Doxygen,(我还需要安装graphvizsudo apt-get install graphviz)然后我终于运行了

$ doxygen
从终端窗口

。生成的HTML文件doc/html/index.html包含有关文件和作者的文档,但它不包含add_one子例程的任何文档。

我在这里缺少什么?

更新

以下是Chromium浏览器中类视图的外观:

enter image description here

如图所示,add_one子例程没有参考/链接。

这是文件视图:

enter image description here

3 个答案:

答案 0 :(得分:6)

所以问题在于处理“我的”变量声明。它将值设置为私有:doxygen永远不会回来。我已经在Perl.pm中添加了一行来修复它,它现在应该适合你。由于您使用的是pl文件而不是pm文件,因此我还对Doxyfile进行了更改,因此您需要从分发中获取新文件。我已经向Github和CPAN发布了1.71,并用您的确切示例对其进行了测试。

答案 1 :(得分:3)

我刚刚向Github和CPAN发布了新版本的Doxygen :: Filter :: Perl,版本1.70。这应该可以解决你所看到的问题。

答案 2 :(得分:2)

我只是看了这个,它似乎与Doxygen(1.7.5.1)一起使用,但是,较新版本的Doxygen(1.8.9.1)似乎效果不佳。