使用dune生成OCaml文档执行dune build @doc后无_doc目录如何处理
问题排查及解决方法
- 执行命令的路径错误
你当前在内部子包路径下执行dune build @doc,该别名默认仅会触发当前目录范围内的文档构建,不会生成全局聚合的_doc目录。请切换到项目根目录(即存在dune-project文件的目录)重新执行命令。 - 缺少odoc工具链声明
请检查项目根目录的dune-project文件,确认已添加odoc扩展声明,示例配置如下:
版本号可根据你本地安装的dune、odoc版本调整为匹配的兼容版本。(lang dune 3.0) (using odoc 2.0) - 目标缺少公开声明
只有配置了public_name字段的库、可执行文件才会被纳入全局聚合文档。请检查对应子包的dune文件,确认需要生成文档的目标 stanza 中已添加public_name配置,且值与项目中声明的package名称匹配。 - 构建目标不完整
部分版本的dune需要同时构建install别名才能触发所有公开目标的文档生成,可尝试执行以下命令:dune build @install @doc - 排查验证方式
执行命令时添加--verbose参数,过滤odoc相关日志确认是否实际触发了文档构建任务:
若无任何odoc相关输出,则说明上述配置仍存在缺失。dune build @doc --verbose | grep odoc
内容的提问来源于stack exchange,提问作者David 天宇 Wong
相关产品推荐
相关产品推荐

