为什么我的dsfml代码没有通过dub进行编译

时间:2015-08-06 20:47:35

标签: d sfml dub

我尝试使用dub编译dsfml,我不断收到此错误:

Linking...
/usr/bin/ld: cannot find -ldsfml-window
/usr/bin/ld: cannot find -ldsfml-system
/usr/bin/ld: cannot find -ldsfml-audio
/usr/bin/ld: cannot find -ldsfml-network
/usr/bin/ld: cannot find -ldsfml-graphics
collect2: error: ld returned 1 exit status
--- errorlevel 1
FAIL .dub/build/application-debug-linux.posix-x86-dmd_2067-FDAB6DCF10EB7D29BC4DAB2CF2FAFD5C/ dsfmlapps executable
Error executing command build:
dmd failed with exit code 1.

我确保通过存储库在我的Ubuntu(14.04 32位)上安装了sfml和csmfl。不知道是什么问题?

编辑:这是我的dub.json文件

{
    "name": "dsfmlapps",
    "description": "A minimal D application.",
    "copyright": "Copyright © 2015, karabuta",
    "authors": ["karabuta"],
    "lflags" : ["-L/usr/include"],
    "dependencies": {
        "dsfml": "~master"    
    }
}

1 个答案:

答案 0 :(得分:2)

我认为这是来自DSMFL的dub.json中的错误。它包含以下形式的库规范:"libs": [ "dsfml-audio" ]。但"libs"指定在其他地方找到的外部库!这里的名称是dsfml-audio但是如果从DSFML查看构建目录,那么您将看到库文件名为libdsfml_audio。 (请注意名称中的-_。)

解决方法是从"libs": [ "..." ],文件中删除所有dub.json行。使用dub -v检查引用的文件!