D和SDL - 函数未定义

Pon*_*dle 3 sdl d compiler-errors undefined-symbol

我有这个非常简单的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;
}
Run Code Online (Sandbox Code Playgroud)

我有一个非常简单的make脚本(我在Windows上,但是Windows D编译器附带了一个bash解释器):

DMD=dmd
DFLAGS=-I./lib/SDL 

$(DMD) pk $(DFLAGS)
pk
Run Code Online (Sandbox Code Playgroud)

但是当我建造它时,我得到了 Error 42: Symbol Undefined _SDL_Init

它设法导入SDL好了,它发现SDL_INIT_VIDEO就好了.我继续检查SDL.d并发现SDL_Init有一个定义:int SDL_Init(Uint32 flags);.我无法弄清楚这一点.这是我用D导入的第一个非STL库,所以希望我的错误很明显,任何人都可以看到它吗?

Vla*_*eev 5

您还必须链接SDL库.如果你有一个正确的格式,只需将它与源文件一起传递给编译器.或者,您可以添加类似pragma(lib, "SDL.lib")程序的内容.