我正在尝试使用SDL2 C#绑定(SDL2-CS),但出于某种原因,Mac版的Mono没有找到该库。 libSDL2-2.0.0.dylib
已安装/usr/local/lib/
,我已将其添加到$DYLD_LIBRARY_PATH
,但我仍然收到System.DLLNotFoundException
。我怎样才能让它发挥作用?
答案 0 :(得分:1)
在OS X上,Mono通常为32位,通过MacPorts或源代码构建进行安装将产生64位二进制文件。这很可能是问题的根源,您可以通过设置export MONO_LOG_LEVEL=debug
进行检查。如果您看到类似的内容:
Mono: DllImport error loading library 'dlopen(/usr/local/lib/libSdl-2.0.0.dylib, 9): no suitable image found.
Did find: /opt/local/lib/libSdl-2.0.0.dylib: mach-o, but wrong architecture'.
那么这就是你的问题。在32位模式下从源编译SDL2,如下所示:
$ export CFLAGS="-arch i386"
$ export LDFLAGS="-arch i386"
$ ./configure
$ make
并且只是为了确保它是正确的,运行:
$ file build/.libs/libSDL2-2.0.0.dylib
应导致:
$ build/.libs/libSDL2-2.0.0.dylib: Mach-O dynamically linked shared library i386
现在只是make install
,你应该好好去!