D - 主模块在文件 "main.d" 中,使用 DUB 编译时无法读取

D - module main is in file "main.d" which cannot be read when compiling using DUB

我关注dub.json:

{
    "name": "foo",
    "targetType": "executable",
    "sourceFiles": ["main.d"],
    "mainSourceFile": "main.d",
    "importPaths": ["src"],
    "sourcePaths": ["src"],
}

我的 main.d(带有基本 hello-world-like 程序)在 src 文件夹中。如果我 运行 dub build 我得到问题标题中提到的错误。如果我将 main.dsrc 移动到 dub.json 所在的同一目录,错误就会消失。我非常想将源代码保留在 src 中,但无法编译。我该如何解决?

我知道有两个问题:first, second,但是他们两个的情况都不一样。在第一个中,找不到的模块是一个依赖项,这里不是这种情况。在第二种情况下,编译是手动执行的,而不是通过 DUB(我尝试将 -Isrc 传递给编译器作为建议的问题的答案,但它没有帮助)。

我在 Arch Linux(64 位)和 LDC v1.2.0 上使用 DUB v1.3.0(但如果我使用 DMD v2.074.0 也会发生同样的情况)

如果你只使用:

似乎可以工作
{
    "name": "foo",
    "targetType": "executable",
    "sourcePaths": ["src"]
}