project
---|source
------ |controllers
-------|models
-------|lib
----------|field.d
-------|app.d
我运行配音但是我收到了这个错误:
错误:来自文件的模块字段...与来自的另一个模块字段冲突 文件源/ lib / field.d
field.d看起来像这样:
module field;
class Field(T){
this(T def_val,bool required,string help_text);
bool validate();
private bool _validate();
}
答案 0 :(得分:5)
始终将模块语句放在要导入的任何文件中,并始终使用包名称以避免冲突。
因此,不是简单地将其称为module field;
,而是将其称为module myapplication.field;
,甚至是module myapplication.lib.field;
,当然,在使用它时也会使用相同的全名导入它。 / p>
我不确定dub是否会像那样工作(我不会亲自使用它),但该语言可以让你给模块任何名字,即使它不匹配文件名,这有助于避免名称冲突。
一般来说,如果你给他们所有完整的,唯一的名字,然后一次编译它们:dmd app.d lib/field.d [and any other files your project has]
,事情就会起作用。