我试图在我的 Mono Mac 项目中使用 DLLImport 以使用我自己的 .dylib,但我得到了 DllNotFoundException。我猜这与我的 .dylib 有关,因为我可以使用现有的 .dylib 文件(例如 libmojoshader.dylib)来执行此操作。
这是我使用 DLLImport 的方法
[DllImport("libtestDylib.dylib")]
static extern int libsum(int a, int b);
然后我调用 libsum 函数以查看它是否有效。
我发现使用MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll" mono myGame.exe命令通过终端运行应用程序是调试此类问题的好方法,但是我无法让我的应用程序 .exe 运行. 我尝试使用 build 文件夹中的 .exe 和 .app/contents/MonoBundle 中的一个,我还尝试在 .app/contents/MacOs 中运行文件,因为在我发现的某些地方引用了这个文件研究。
最后一个文件抛出“文件不包含有效的 CIL 图像”。和另外两个“应用程序包中没有 Info.plist 文件或 Info.plist 文件中没有 NSPrincipalClass”。
所以,我猜第一步是设法通过终端运行应用程序,以获得正确的调试信息,了解为什么找不到我的 .dylib。
我制作的 .dylib 是用 XNA4 制作的空 BSD C 库。
编辑
我什至现在似乎都无法让现有的 dylib 工作。