D-主模块位于“文件”中;主体部分d“;使用DUB编译时无法读取的
对于dub.json,我有以下内容:D-主模块位于“文件”中;主体部分d“;使用DUB编译时无法读取的,d,dub,D,Dub,对于dub.json,我有以下内容: { "name": "foo", "targetType": "executable", "sourceFiles": ["main.d"], "mainSourceFile": "main.d", "importPaths": ["src"], "sourcePaths": ["src"], } 我在src文件夹中有我的main.d(带有类似hello world的基本程序)。如果我运行dub build,
{
"name": "foo",
"targetType": "executable",
"sourceFiles": ["main.d"],
"mainSourceFile": "main.d",
"importPaths": ["src"],
"sourcePaths": ["src"],
}
我在src
文件夹中有我的main.d
(带有类似hello world的基本程序)。如果我运行dub build
,我会得到问题标题中提到的错误。如果我将main.d
从src
移动到dub.json
所在的同一目录,错误就会消失。我非常希望将源代码保存在src
中,但这不会编译。我怎么修理它
我知道有两个问题:,但情况与这两个不同。在第一个例子中,找不到的模块是一个依赖项,这里不是这种情况。在第二种情况下,编译是手动执行的,而不是通过DUB执行的(尽管我已经尝试将-Isrc
传递给编译器,作为对该问题的回答,但是没有帮助)
我在Arch Linux(64位)和LDC v1.2.0上使用DUB v1.3.0(但如果我使用DMD v2.074.0,也会发生同样的情况)如果您只使用:
{
"name": "foo",
"targetType": "executable",
"sourcePaths": ["src"]
}
如果您仅使用以下选项,则似乎有效:
{
"name": "foo",
"targetType": "executable",
"sourcePaths": ["src"]
}
尝试删除
sourceFiles
行。对于sourcepath
来说,它应该是不必要的,并且可能会迫使它查找错误的位置。@AdamD.Ruppe没有帮助,不幸的是。sourceFiles不采用模块名,它采用相对于dub.json
的路径<代码>“sourceFiles”:[“src/main.d”]应该可以工作,但您不需要单独指定每个文件。查看NotSpooky的答案,了解一般方法。尝试删除sourceFiles
行。对于sourcepath
来说,它应该是不必要的,并且可能会迫使它查找错误的位置。@AdamD.Ruppe没有帮助,不幸的是。sourceFiles不采用模块名,它采用相对于dub.json
的路径<代码>“sourceFiles”:[“src/main.d”]应该可以工作,但您不需要单独指定每个文件。请看NotSpooky的答案,了解一般方法。