首先,' rebar doc'有时工作,有时不工作。它很奇怪。 我使用的钢筋版本是2.5.1
我的文件夹结构是:
sub_dir_3中的模块也使用sub_dir_2 / include文件夹中的一些包含文件。
我使用命令rebar doc时得到的错误是:
.sub_dir_3 / src / my_log_worker.erl,在模块标题中:第9行:文件 找不到:some.hrl edoc:跳过源文件 ' sub_dir_3 / src / my_log_worker.erl':{'退出',错误}。 edoc:错误 doclet' edoc_doclet':{'退出',错误}。错误:doc失败了 处理/ home / learn / header_directory / apps / sub_dir_3:{' EXIT',error}
我做的'螺纹钢清洁'然后'螺纹钢编译'在' rebar doc'
之前另外,当我在erl shell中执行此操作时,我收到错误。
edoc:file(" some_log_worker.erl",[])。
edoc:错误读取文件' some_log_worker.erl'。
**异常退出:{error,enoent}
在函数edoc:read_source / 2(edoc.erl,第664行) 来自edoc_extract的调用:source / 3(edoc_extract.erl,第52行)
来自edoc的电话:read / 2(edoc.erl,第537行)
来自edoc:file / 2(edoc.erl,第116行)的电话
有什么方法可以将我的hrl文件包含在rebar.config或edoc选项中?
我有' {edoc_opts,[{i," apps / sub_dir_3 / include" }]}&#39。在rebar.config中,仍然没有帮助。
答案 0 :(得分:1)
看起来你没有遵循螺纹钢/ OTP惯例:
OTP惯例
Rebar希望项目遵循OTP惯例,如中所述 OTP设计原则文件:应用
应用程序应包含以下目录集:
src ebin priv include
并拥有一个应用程序资源文件:ebin / example_project.app或 SRC / example_project.app.src。在后一种情况下, ebin / example_project.app文件是从。生成的 src / example_project.app.src在编译期间自动生成一个 相。
我建议您转到该文件组织,从钢筋等标准工具中受益真的会更加简单。
答案 1 :(得分:0)
是的,遵循OTP原则始终符合最佳利益。但是,它适用于我的应用程序结构。
唯一的问题是因为erlang模块中的@headerfile注释。不知何故,我不知道如何正确使用@header文件注释。
感谢所有帮助。 :)