如何使用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,提问作者孙海城
相关产品推荐
相关产品推荐

