我如何获得Erlang的edoc:application(myproject)。工作?

时间:2019-12-19 19:23:12

标签: erlang edoc

我正在努力弄清Erlang的自动文档系统。该文档建议使用http://erlang.org/doc/man/edoc.html#application-2

中记录的edoc模块的应用程序功能。

我已经这样设置了子目录:

myproject/
├── src/
├── ebin/
│   └── myproject.app
├── include/
├── priv/
└── doc/
    └── overview.edoc

我无法从文档中确定edoc函数 application 中引用的应用程序是否与myproject.app文件有关,但似乎没有。

>

我得到的错误是:

1> edoc:application(myproject).
edoc: cannot find application directory for 'myproject'.
** exception exit: error
     in function  edoc:application/2 (edoc.erl, line 165)

任何关于如何使它成功运作的神奇咒语的建议都得到了接受。

2 个答案:

答案 0 :(得分:3)

  

application(Application :: atom(),Options :: proplist())->确定

     

在默认应用程序目录中的应用程序上运行EDoc。

我不知道它在哪里:o)

您可以在myproject级别使用命令edoc:application(myproject,".",[]).,它将在src目录中创建一个doc目录。

  

application(Application :: atom(),Dir :: filename(),Options :: proplist())   ->好的

     

在指定目录中的应用程序上运行EDoc。

我更喜欢使用rebar3创建和管理应用程序,它通过一个简单的配置文件为您完成了很多工作。

答案 1 :(得分:2)

要获取放置在./myproject/doc子目录中的文档,而不是默认的./myproject/ebin/doc目录,我使用了从项目根目录./myproject /

进行的以下运行
edoc:application(myproject, ".", [{dir, "doc"}, {subpackages, true}]).

让我感到震惊的是总览中引用的文件。edoc必须相对于./doc子目录(回想起来很有意义),如:

  

@headerfile“ ../ include / global.hrl”