3

我正在尝试使用 SDL2 的 Derelict3 绑定编写一个简单的 hello world。我在链接过程中遇到了以前从未见过的错误。

module main;

import derelict.sdl2.sdl;

pragma(lib, "DerelictSDL2");
pragma(lib, "DerelictUtil");
pragma(lib, "dl");

int main(string[] args)
{
    DerelictSDL2.load();
    return 0;
}

命令行:

dmd src/main.d -debug -Iinclude -Isrc -L-Llib -L-lSDL2

输出:

> lib/libDerelictSDL2.a(sdl_55_698.o):(.rodata+0x41e8): undefined reference to `_D6object6Object8opEqualsMFC6ObjectC6ObjectZb'
> lib/libDerelictUtil.a(exception_9b_6db.o):(.rodata+0xe8): undefined
> reference to `_D6object6Object8opEqualsMFC6ObjectC6ObjectZb'
> lib/libDerelictUtil.a(exception_9d_89d.o):(.rodata+0x178): undefined
> reference to `_D6object6Object8opEqualsMFC6ObjectC6ObjectZb'
> lib/libDerelictUtil.a(exception_9e_7a5.o):(.rodata+0x118): undefined
> reference to `_D6object6Object8opEqualsMFC6ObjectC6ObjectZb' collect2:
> ld returned 1 exit status
>         --- errorlevel 1

我尝试过的:

我正在使用 DMD64 D 编译器 v2.063.2。任何帮助表示赞赏。谢谢。

4

1 回答 1

4

看起来 Derelict 是使用与您用于构建程序的版本不同的 D 版本构建的。尝试从源代码重建 Derelict。

于 2013-09-18T00:17:38.210 回答