MonoGame无法找到动态库文件,引发DllNotFoundException
我在Xamarin工作室有一个使用MonoMac的项目。我正在使用MonoGame无法找到动态库文件,引发DllNotFoundException,mono,xamarin,monogame,Mono,Xamarin,Monogame,我在Xamarin工作室有一个使用MonoMac的项目。我正在使用[DllImport(“rlimit”)]访问.dylib文件。然而,即使我已经将rlimit映射到rlimit.dylib,仍然会抛出DllNotFoundException .dylib文件位于项目中,应该可以访问,但是找不到它们 我猜这些文件不是放错了地方,就是因为某种原因没有被检测到。你需要把动态库放在mono可以找到的任何地方 通过执行以下操作,您可以找到mono在何处查找本机库: export MONO_LOG_LEV
[DllImport(“rlimit”)]
访问.dylib文件。然而,即使我已经将rlimit
映射到rlimit.dylib
,仍然会抛出DllNotFoundException
.dylib文件位于项目中,应该可以访问,但是找不到它们
我猜这些文件不是放错了地方,就是因为某种原因没有被检测到。你需要把动态库放在mono可以找到的任何地方 通过执行以下操作,您可以找到mono在何处查找本机库:
export MONO_LOG_LEVEL=debug
export MONO_LOG_MASK=dll
mono yourprogram.exe
详细查找输出将打印到终端。在我的系统上,mono首先查看可执行文件所在的目录,因此将动态库放在那里可能是最简单的方法。然后mono要求系统查找动态库(通过尝试在没有路径的情况下打开动态库)。系统通常在/usr/lib和其他一些地方查找(这当然取决于系统),但在任何情况下,都可以通过将LD_LIBRARY_path设置为该路径来添加系统要查找的路径。在这种情况下,您将执行以下操作:
export LD_LIBRARY_PATH=/path/to/dylib:$LD_LIBRARY_PATH
mono yourprogram.exe
请注意,您不需要.dllmap,mono将根据平台自动附加适当的后缀(.dylib在Mac上,.so在Linux上,以及.dll在Windows上)