读书人

rebar 编译时没法指定输出目录

发布时间: 2012-12-31 11:57:52 作者: rapoo

rebar 编译时无法指定输出目录
一直用eclipse来开发erlang的,这几天想试着用rebar来构建当前的项目。由于项目的目录结构不太标准,所以要在rebar.config中配置,配置源码文件目录、头文件目录、输出目录等,但我发现用outdir标志指定输出目录时不管用,于是查了下rebar的源码。在rebar_lfe_compiler.erl中有62行如下代码: Opts = [{i, "include"}, {outdir, "ebin"}, return] ++ rebar_config:get_list(Config, erl_opts, []),
很明显,这里指定了默认的outdir标志,导致我们定义的outdir标志无效,改成下面的形式,重新make编译一下 Opts =rebar_config:get_list(Config, erl_opts, []) ++ [{i, "include"}, {outdir, "ebin"}, return],
现在已经能够指定rebar输出到其它目录了,但是自己生成的*.app文件依然输出到ebin目录中。这是因为这个文件是由rebar而不是erlang编译器生成的,可以在rebar_app_utils.erl中找到了相关代码,看了一下修改起来麻烦,所以不改了。同样的道理*.app.src文件也必需放在src目录中

读书人网 >编程

热点推荐