我有这个非常简单的 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/