2017-05-28 28 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"] 
}