Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MonoGame无法找到动态库文件,引发DllNotFoundException_Mono_Xamarin_Monogame - Fatal编程技术网

MonoGame无法找到动态库文件,引发DllNotFoundException

MonoGame无法找到动态库文件,引发DllNotFoundException,mono,xamarin,monogame,Mono,Xamarin,Monogame,我在Xamarin工作室有一个使用MonoMac的项目。我正在使用[DllImport(“rlimit”)]访问.dylib文件。然而,即使我已经将rlimit映射到rlimit.dylib,仍然会抛出DllNotFoundException .dylib文件位于项目中,应该可以访问,但是找不到它们 我猜这些文件不是放错了地方,就是因为某种原因没有被检测到。你需要把动态库放在mono可以找到的任何地方 通过执行以下操作,您可以找到mono在何处查找本机库: export MONO_LOG_LEV

我在Xamarin工作室有一个使用MonoMac的项目。我正在使用
[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上)