作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
project
---|source
------ |controllers
-------|models
-------|lib
----------|field.d
-------|app.d
我运行 dub 但出现此错误:
Error: module field from file ... conflicts with another module field from file source/lib/field.d
field.d 看起来像这样:
module field;
class Field(T){
this(T def_val,bool required,string help_text);
bool validate();
private bool _validate();
}
最佳答案
始终在要导入的任何文件中放置模块语句,并使用一致的包名称以避免冲突。
所以,不要简单地称它为 module field;
,而是称它为 module myapplication.field;
,甚至 module myapplication.lib.field;
,当然在使用的时候也要导入全名。
我不确定 dub 是否会像那样工作(我个人不使用它),但是该语言允许您为模块指定任何名称,即使它与文件名不匹配,这有助于像这样的情况,避免名称冲突。
一般来说,如果你给它们全部完整的、唯一的名称,然后一次编译它们:dmd app.d lib/field.d [以及你项目中的任何其他文件]
,东西将正常工作。
关于d - 如何在 D 中的不同文件夹中编译多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20319966/
我是一名优秀的程序员,十分优秀!