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

私が試したこと:

  • Derelict3 と SDL2 が最新であることを確認する
  • リンクされたライブラリの順序を変更する
  • オンラインで検索すると、これに関連する他の投稿が 1 つしか見つかりませんでした: http://dblog.aldacron.net/forum/index.php?topic=834.0

DMD64 D コンパイラ v2.063.2 を使用しています。どんな助けでも大歓迎です。ありがとう。

4

1 に答える 1

4

Derelict は、プログラムのビルドに使用しているバージョンとは異なるバージョンの D を使用してビルドされたようです。Derelict をソースから再構築してみてください。

于 2013-09-18T00:17:38.210 に答える