gpt4 book ai didi

d - 如何在 D 中的不同文件夹中编译多个文件?

转载 作者:行者123 更新时间:2023-12-02 04:43:32 27 4
gpt4 key购买 nike

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com