未定义的opEquals引用:Derelict3绑定到SDL2的链接器错误

时间:2013-09-17 23:38:44

标签: sdl d sdl-2 derelict3

我正在尝试使用Derelict3绑定为SDL2编写一个简单的hello世界。我在链接期间遇到的错误是我以前没见过的。

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 Compiler v2.063.2。 任何帮助表示赞赏。 感谢。

1 个答案:

答案 0 :(得分:4)

看起来Derelict是使用不同版本的D构建的,而不是您用来构建程序的版本。尝试从源头重建废弃物。