Macos Mac OS X 10.7上被忽略的2:SDL无法生成

Macos Mac OS X 10.7上被忽略的2:SDL无法生成,macos,makefile,osx-lion,d,Macos,Makefile,Osx Lion,D,我正试图建立在狮子的基础上。当我运行命令make-fmac.mak DC=dmd时,以下库构建良好: 被遗弃的塔莱格罗 被遗弃的 失职 失职 失职 失职 失职 被遗弃的 不幸的是,一旦脚本达到DerelictSDL,它就会抛出以下内容: make -C DerelictSDL all PLATFORM=mac dmd -release -O -inline -I../DerelictUtil -c derelict/sdl/sdl.d derelict/sdl/sdlfuncs.d dere

我正试图建立在狮子的基础上。当我运行命令
make-fmac.mak DC=dmd
时,以下库构建良好:

  • 被遗弃的塔莱格罗
  • 被遗弃的
  • 失职
  • 失职
  • 失职
  • 失职
  • 失职
  • 被遗弃的
不幸的是,一旦脚本达到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

最新版本的《被遗弃》是

至于您的错误,看起来您是针对64位进行编译的,显然在Derelict2中没有考虑到这一点


您只需要修复源代码。正确的方法是将这些实例更改为使用
size\t
,而不是
uint
,但在错误消失之前,只
cast(size\t)
这些表达式可能更容易:-)长度不太可能超过40亿,因此,在切换到Derelict3之前,您应该没事。

最新版本的Derelict是

至于您的错误,看起来您是针对64位进行编译的,显然在Derelict2中没有考虑到这一点


您只需要修复源代码。正确的方法是将这些实例更改为使用
size\t
,而不是
uint
,但在错误消失之前,只
cast(size\t)
这些表达式可能更容易:-)长度不太可能超过40亿,因此,在切换到Derelict3之前,您应该不会有问题。

尝试以32位模式编译。我相信dmd和gdc/gdmd的-m32选项可以在32位模式下编译。我相信这是dmd和gdc/gdmd的-m32选项

干杯,伙计,我会试试看!干杯,伙计,我要试一下!