我正在尝试使用 Derelict2 绑定在 D 中编写一个测试程序。这是我的代码:
import std.stdio;
import derelict.sfml.audio;
pragma(lib, "/home/ryan/Derelict2/lib/libDerelictSFMLAudio.a");
pragma(lib, "/home/ryan/Derelict2/lib/libDerelictUtil.a");
void main(){
DerelictSFMLAudio.load();
}
所有 derelict 的 .di 文件都在 dmd 的默认导入目录中,所以我的印象是以下命令应该编译并链接我的程序。
dmd test.d -L-lDerelictSFML -L-lDerelictUtil -L-ldl
但是,我收到此错误:
/usr/bin/ld: cannot find -lDerelictSFML
/usr/bin/ld: cannot find -lDerelictUtil
collect2: error: ld returned 1 exit status
--- errorlevel 1
我到底做错了什么?
有点离题,但也令人担忧:
-ldl 标志有什么作用?我知道它是成功链接所必需的,但我不确定如何,而且它不在 ld 手册中。