同问!
> 1. 毕竟ebLogger.hrl 和 schema.hrl 是在同一个目录中的,加上路径感觉很怪。
> 2. 其他 *.erl 文件都可以直接包含schema.hrl 文件,不需要加路径,这就变成hrl 文件include 和 erl 文件include
> 方式不同。
> 3. 如果在core/engine 目录用 c(erlbattle) 方式编译,这种写法又会报错。
>
> 高手指点下,这个问题有没有更好的解决方式? 还是说我们就杜绝在hrl 文件中 include 另外一个hrl 文件?
>
>
> Regards
>
>
> 老范
>
>
>
>
>
>
> >
>
--
http://zoomquiet.org 人生苦短,Pythonic!-)
流程是对先前蠢行的内在反应! ~ Clay Shirky
hwh的程序里面自己使用了同名的schema.hrl,造成跟引擎同名。
因此他包含自己的hrl时,使用的是-include("schema.hrl"),而包含引擎的hrl时,使用的是-include("engine/schemal.hrl")。
我尝试着,将hwh的hrl改名,然后所有include自己的hrl的地方修改,再将-include("engine/schemal.hrl")中的engine去掉。同时修改他的emakefile,将{i,
"core"}改成{i, "core/engine"},编译,通过。
因此,开始编译不过,应该是原先include的时候,使用了不同路径下的同名文件造成的。
因为要避免同名,所以在{i, "core"}里面的包含路径里面就没有engine。这样,引擎中的hrl中包含的eblogger.hrl就找不到了。
2009/8/16 Zoom.Quiet <zoom....@gmail.com>: