You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用erl -make编译依赖hrl头文件的Erlang批量文件?

使用erl -make批量编译依赖.hrl头文件的Erlang文件

核心逻辑

erl -make通过读取Emakefile配置文件来批量定义编译规则,只要在配置中指定头文件路径,就能自动处理所有依赖该路径下.hrl的Erlang文件。

步骤1:编写Emakefile配置

在项目根目录创建名为Emakefile的文件,用Erlang术语格式编写编译规则,示例如下:

基础配置(编译指定目录下所有文件)

{"src/*", [{i, "include"}, {outdir, "ebin"}]}.
  • {"src/*"}:匹配src目录下所有.erl文件
  • {i, "include"}:指定头文件所在目录(对应erlc -I或c(..., [{i, ...}])的参数)
  • {outdir, "ebin"}:指定编译生成的.beam文件输出到ebin目录

多目录/多模块配置

如果模块分散在不同路径,或需要不同的头文件路径,可以添加多个规则:

{"src/core/*.erl", [{i, "include"}, {outdir, "ebin"}]},
{"src/utils/*.erl", [{i, "include"}, {i, "deps/third_party/include"}, {outdir, "ebin"}]}.

步骤2:执行批量编译

在终端的项目根目录下直接运行命令:

erl -make

命令会自动读取Emakefile的配置,批量编译所有符合规则的Erlang文件,同时处理对指定目录下.hrl文件的依赖。

注意事项

  • Emakefile的语法是Erlang术语,每个规则末尾的逗号/句号要注意(最后一条规则用句号,前面的用逗号分隔)
  • 所有路径都是相对当前工作目录的路径,确保路径正确
  • 如果需要额外编译选项(如调试信息),可以在配置里添加,比如{d, 'DEBUG'}

内容的提问来源于stack exchange,提问作者孙海城

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:10:11