1

付属のインストール手順に従って、Lion でDerelict2をビルドしようとしています。コマンドを実行すると、次のライブラリが正常にビルドされます。make -fmac.mak DC=dmd

  • 遺棄アレグロ
  • 遺棄FMOD
  • 遺棄FT
  • 遺棄GL
  • 遺棄IL
  • DerelictODE
  • 遺棄されたOgg
  • 遺棄されたPA

残念ながら、スクリプトが DerelictSDL に到達すると、次のメッセージが出力されます。

make -C DerelictSDL all PLATFORM=mac
dmd -release -O -inline -I../DerelictUtil -c derelict/sdl/sdl.d derelict/sdl/sdlfuncs.d derelict/sdl/sdltypes.d -Hd../import/derelict/sdl
dmd -release -O -inline -I../DerelictUtil -c derelict/sdl/macinit/CoreFoundation.d derelict/sdl/macinit/DerelictSDLMacLoader.d derelict/sdl/macinit/ID.d derelict/sdl/macinit/MacTypes.d derelict/sdl/macinit/NSApplication.d derelict/sdl/macinit/NSArray.d derelict/sdl/macinit/NSAutoreleasePool.d derelict/sdl/macinit/NSDictionary.d derelict/sdl/macinit/NSEnumerator.d derelict/sdl/macinit/NSEvent.d derelict/sdl/macinit/NSGeometry.d derelict/sdl/macinit/NSMenu.d derelict/sdl/macinit/NSMenuItem.d derelict/sdl/macinit/NSNotification.d derelict/sdl/macinit/NSObject.d derelict/sdl/macinit/NSProcessInfo.d derelict/sdl/macinit/NSString.d derelict/sdl/macinit/NSZone.d derelict/sdl/macinit/runtime.d derelict/sdl/macinit/SDLMain.d derelict/sdl/macinit/selectors.d derelict/sdl/macinit/string.d     -Hd../import/derelict/sdl/macinit
derelict/sdl/macinit/NSString.d(134): Error: cannot implicitly convert expression (this.length()) of type ulong to uint
derelict/sdl/macinit/NSString.d(135): Error: cannot implicitly convert expression (str.length()) of type ulong to uint
derelict/sdl/macinit/NSString.d(140): Error: cannot implicitly convert expression (cast(ulong)(selfLen + aStringLen) - aRange.length) of type ulong to uint
make[1]: *** [dmd_mac_build_sdl] Error 1
make: *** [DerelictSDL_ALL] Error 2
4

2 に答える 2

1

Derelict の最新バージョンはDerelict3 で、GitHub にあります

エラーに関しては、64 ビット用にコンパイルしているようですが、Derelict2 では考慮されていないようです。

ソースコードを修正するだけです。これを行う正しい方法は、これらのインスタンスをsize_tの代わりに使用するように変更することですが、エラーがなくなるまでは、これらの式uintだけの方が簡単かもしれませんcast(size_t):-) 長さが 40 億を超える可能性は低いので、 Derelict3 に切り替えるまでは問題ありません。

于 2012-05-15T09:33:43.830 に答える
0

32ビットモードでコンパイルしてみてください。dmd および gdc/gdmd の -m32 オプションだと思います

于 2012-05-18T21:22:40.013 に答える