我试图弄清楚如何使用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,(我还需要安装graphviz
:sudo apt-get install graphviz
)然后我终于运行了
$ doxygen
从终端窗口。生成的HTML文件doc/html/index.html
包含有关文件和作者的文档,但它不包含add_one
子例程的任何文档。
我在这里缺少什么?
更新
以下是Chromium浏览器中类视图的外观:
如图所示,add_one
子例程没有参考/链接。
这是文件视图:
答案 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)似乎效果不佳。