2015-03-13 46 views
4

我想弄清楚如何使用Doxygen::Filter::Perl来生成Perl文件的文档。我开始用一个非常简单的文件,只是为了看看,如果我能得到它的工作(test_doxygen.pl):如何使用Doxygen和Doxygen :: Filter :: Perl为Perl子例程生成文档?

#! /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 ([email protected]) 
# 
# @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 ::过滤器:: Perl和用于被包维护者提供的Doxyfile配置文件在metacpan.org(the link is here) 并放在与上面的脚本相同的目录中。我在Doxyfile改变一个线:INPUT标签的值从lib变更为空字符串,以仅搜索源文件的当前目录..

我使用Ubuntu 14.04,所以我安装的Doxygen与sudo apt-get install doxygen,(I也需要安装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

您错过了Perl Progammers使用[pod](https://metacpan.org/pod/perlpod)的想法吗? – mob 2015-03-13 13:50:46

+3

@mob在阅读本文后http://stackoverflow.com/questions/4722619/is-there-really-no-better-way-to-document-perl-code-than-pod我决定尝试Doxygen :) – 2015-03-13 13:54:00

回答

6

所以问题是处理“我的”变量声明。它将价值定为私密:doxygen永远不会回头。我已经添加了一行Perl.pm来解决这个问题,它现在应该适用于你。由于您正在使用pl文件而不是pm文件,因此我也对Doxyfile进行了更改,因此您需要从发行版中获取新文件。我已经向Github和CPAN发布了1.71,并且已经用你的确切例子对它进行了测试。

+1

感谢Jordan。它正在工作!它看起来不错,谢谢你的时间。 – 2015-03-18 06:35:08

2

我只是看着这一点,似乎与Doxygen的(1.7.5.1)工作,但Doxygen的新版本(1.8.9.1)似乎并不好。

+0

谢谢@ jordan2175。我正在使用版本1.8.6。 – 2015-03-14 08:16:12

3

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

+0

谢谢@ jordan2175。但它仍然不起作用。我运行'cpanm Doxygen :: Filter :: Perl'来更新到1.70版本。然后重新运行'doxygen'命令,但我仍然得到相同的结果。在浏览器的类视图或文件视图中都没有'add_one'子例程。 – 2015-03-17 06:43:35