compiler-errors - D 和 SDL - 函数未定义

标签 compiler-errors sdl d 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;
}

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

相关文章:

c++ - 使用 VLD 编译 C 代码

image-processing - D的图像处理库?

actionscript-3 - 我的错误在哪里? (Flash CS6 AS3错误: 1120)

compiler-errors - Android Studio编译错误消失

c++ - HWSURFACE 与纹理有何不同?

xcode - Sdl objective c++ 和 xcode 在游戏中包含 sdl 框架

arrays - 使用 D 中任意数量的元素初始化数组

compiler-construction - 使用哪个 D 编译器?

c++ - 我怎样才能模仿一元 + 运算符正在做什么来让代码在 gcc-4.6 中正确编译?

c++ - read was not declared 错误信息