我尝试使用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"
}
}
答案 0 :(得分:2)
我认为这是来自DSMFL的dub.json
中的错误。它包含以下形式的库规范:"libs": [ "dsfml-audio" ]
。但"libs"
指定在其他地方找到的外部库!这里的名称是dsfml-audio
但是如果从DSFML查看构建目录,那么您将看到库文件名为libdsfml_audio
。 (请注意名称中的-
与_
。)
解决方法是从"libs": [ "..." ],
文件中删除所有dub.json
行。使用dub -v
检查引用的文件!