неопределенная ссылка на opEquals: ошибки компоновщика с привязками Derelict3 к SDL2


Я пытаюсь написать простой hello world, используя привязки Derelict3 для SDL2. Я получаю ошибки во время связывания, которые я не видел раньше.

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.д -отладка -включите -музыки -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

Что я пробовал:

  • убедитесь, что Derelict3 и SDL2 являются актуальными
  • изменение порядка моих связанных библиотек
  • поиск онлайн: я смог найти только 1 другой пост, связанный с этим: http://dblog.aldacron.net/forum/index.php?topic=834.0

Я использую DMD64 Д компилятора В2.063.2. Любая помощь ценится. Спасибо.

1 3

1 ответ:

Похоже, что Derelict был построен с использованием другой версии D, чем та, которую вы используете для построения своей программы. Попробуйте восстановить заброшенный из источника.