D语言如何让Dub找到外部库

3
我正在尝试使用DSFML库,使用dub编译D程序。 我遵循一个教程,该教程解释了如何使用dub编译具有任何“外部”库的项目。

创建项目后,我尝试使用dub build进行编译,并且它显示dsfml-graphics.lib Warning 2: File Not Found dsfml-graphics.lib,每个.lib文件都有一个警告。

现在,如果我的源代码不包含任何SFML对象/类/相关指令,则它会显然编译并生成警告。 如果我使用一些SFML类,显然就不会出现这种情况。

我想我在dub.json文件中做错了什么,也许是在-lflag标签中,但我不确定。 有没有关于如何使dub找到我的DSFML .lib文件的任何想法?

这是我的目录树:

>documents
>> DSFML
>>> bin (inside, .dll files)
>>> lib
>>>> dmd (inside, .lib files)
>>>> gcd (inside, .lib files)
>> d-test-dsfml (my dub's project)

这是我的dub.json文件:

{
    "name": "d-test-sfml",
    "description": "A minimal D application.",
    "copyright": "Copyright © 2014, John",
    "authors": ["John"],
    "lflags" : ["+C:\\Users\\John\\documents\\DSFML"],
    "dependencies": {
        "dsfml:graphics": "~master",
    }
}

在-lflag中,我还尝试使用[John user]\documents\DSFML\bin、lib和lib\dmd。
编辑:问题已解决,我只需要写上lib\\dmd\\(以两个\\结尾)。6小时后我会标记为已解决。
1个回答

1

请在"lflags" : ["+C:\\Users\\John\\documents\\DSFML\\lib\\dmd\\"]后面加上两个\\。这样dub就可以找到.lib文件了。
和其他程序一样,在编译后将.dll文件放入与.exe文件相同的目录下的\\bin文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接