2012-05-15 2 views
1

Я пытаюсь построить Derelict2 на льве в соответствии с включенным installation instructions. Когда я запускаю команду make -fmac.mak DC=dmd следующие библиотеки строить отлично:Derelict2 на Mac OS X 10.7: SDL не удалось построить

  • DerelictAllegro
  • DerelictFMOD
  • DerelictFT
  • DerelictGL
  • DerelictIL
  • DerelictODE
  • DerelictOgg
  • DerelictPA

К сожалению, после того, как скрипт получает до 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 

ответ

1

Последняя версия заброшенном является Derelict3, which is on GitHub.

Что касается вашей ошибки, похоже, что вы компилируете 64-разрядную версию, которая, по-видимому, не была принята во внимание в Derelict2.

Вам просто нужно исправить исходный код. Правильный способ сделать это - изменить эти экземпляры, чтобы использовать size_t вместо uint, но может быть проще только cast(size_t) эти выражения до тех пор, пока ошибки не исчезнут :-) Маловероятно, что длина будет когда-либо превышать 4 миллиарда, поэтому вы должны быть в порядке, пока не перейдете к Derelict3.

+0

Привет, друг, я пойду! – bjz

0

Попробуйте выполнить компиляцию в 32-разрядном режиме. Я считаю, что это вариант -m32 для dmd и gdc/gdmd

Смежные вопросы