我有这个非常简单的 D 程序 (pk.d):
import std.stdio;
import SDL;
int main(string[] args) {
writefln("Hello world");
if (SDL_Init( SDL_INIT_VIDEO ) < 0) {
writefln("Unable to init SDL");
return 1;
}
return 0;
}
我有一个非常简单的 make 脚本(我在这里使用的是 Windows,但 Windows D 编译器与 bash 解释器打包在一起):
DMD=dmd
DFLAGS=-I./lib/SDL
$(DMD) pk $(DFLAGS)
pk
但是当我构建它时,我得到了Error 42: Symbol Undefined _SDL_Init
它成功地导入了 SDL,并且发现 SDL_INIT_VIDEO 很好。我继续查看 SDL.d,发现 SDL_Init 有一个定义:int SDL_Init(Uint32 flags);
。我想不通。这是我用 D 导入的第一个非 STL 库,所以希望我的错误很明显,有人能看到吗?
最佳答案
您还必须链接到 SDL 库。如果您有一个格式正确的文件,只需将它连同您的源文件一起传递给编译器。或者,您可以将类似 pragma(lib, "SDL.lib")
的内容添加到您的程序中。
关于compiler-errors - D 和 SDL - 函数未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5114235/