2017-05-28 30 views
0

我有以下的dub.json不能阅读:d - 模块主要是在文件“main.d”编译时使用DUB

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

我有我的main.d(基本你好世界般的程序)在src文件夹中。如果我运行dub build,我会收到问题标题中提到的错误。如果将main.dsrc移至dub.json所在的同一目录,错误消失。我非常希望保留源文件在src,但不能编译。我如何解决它?

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

我使用DUB V1.3.0上的Arch Linux(64位)和最不发达国家V1.2.0(但如果我使用DMD v2.074.0同样的情况)

+0

尝试删除'sourceFiles'行。 'sourcePaths'应该是没有必要的,并且可能会迫使它查找错误的地方。 –

+0

@ AdamD.Ruppe没有帮助,不幸的是。 – Michail

+0

sourceFiles不采用模块名称,它采用相对于'dub.json'的路径。 ''sourceFiles“:[”src/main.d“]'应该可以工作,但是你不需要单独指定每个文件。看看NotSpooky的答案是一般的方法。 – weltensturm

回答

2

看来,如果你只使用工作:

{ 
    "name": "foo", 
    "targetType": "executable", 
    "sourcePaths": ["src"] 
}