C# Xamarin.iOS绑定C“;第三方动态;应用程序内

C# Xamarin.iOS绑定C“;第三方动态;应用程序内,c#,xamarin,xamarin.ios,dylib,C#,Xamarin,Xamarin.ios,Dylib,我正在使用 Xamarin Studio-6.1.2(build 44)Xamarin.iOS版本:10.2.1.5 我正在尝试在我的Xamarin.iOS应用程序中绑定C“thirdparty.dylib”。这是一个动态库 我遵循了https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/ static void Main(string[] args) { str

我正在使用

Xamarin Studio-6.1.2(build 44)Xamarin.iOS版本:10.2.1.5

我正在尝试在我的Xamarin.iOS应用程序中绑定C“thirdparty.dylib”。这是一个动态库 我遵循了
https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/

static void Main(string[] args)
    {           
        string fileName = "liba.dylib"; 
        string docfolder =   Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        string dbpath = Path.Combine(docfolder, fileName);

        var a = ObjCRuntime.Dlfcn.dlopen(dbpath, 0);
        if (a == IntPtr.Zero)
        {
            Console.WriteLine("[FAIL] TestDlopenSystem: Could not dlopen liba.dylib");
        }

        UIApplication.Main(args, null, "AppDelegate");
    }
我已经通过iTunes将“liba.dylib”放在iOS设备内部存储中,但是当我尝试“ObjCRuntime.Dlfcn.dlopen”时,“intptr”总是返回零

[DllImport("liba.dylib", EntryPoint="foo")]
public static extern double foo();
当我尝试使用Dllimport时,它总是返回DllNotFoundException

动态库没有加载到内存中。

可能与我们尝试的内容重复,1)我们在项目中添加了动态库作为捆绑资源。2) 使用install_name_工具,我们将dylib path设置为@rpath/liba.dylib 3)将[DllImport(@rpath/liba.dylib”)]添加到代码4)中,然后我们添加了额外的mtouch参数,如-gcc_标志“-L/Users/datacomp/projects/Dylibtest/Dylibtest/-la”,但是我们得到了错误ex{System.DllNotFoundException:@rpath/liba.dylibat(包装器管理为本机)这里可能是我们尝试的重复,1)我们在项目中添加了dylib作为捆绑资源。2)使用install_name_工具,我们将dylib路径设置为@rpath/liba.dylib 3)将[DllImport(@rpath/liba.dylib”)]添加到代码4)然后我们添加了额外的mtouch参数,如-gcc_标志“-L/Users/datacomp/projects/Dylibtest/Dylibtest/-la”但是我们得到了错误ex{System.DllNotFoundException:@rpath/liba.dylib at(包装器管理为本机)