.Net Core 3.1-加载扩展名为.so.0的本机库失败



我正在将项目从mono迁移到.NET Core,并使用sqlite库。

以下代码在Mono中正常工作,但在dotnet中不正常:

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Sqlite version: " + Sqlite.LibVersionNumber());
}
}
public static class Sqlite
{
const string LibraryPath = "sqlite3";
[DllImport(LibraryPath, EntryPoint = "sqlite3_libversion_number", CallingConvention = CallingConvention.Cdecl)]
public static extern int LibVersionNumber();
}

问题是,在/usr/lib中我有libsqlite3.so.0如果我将(或在/usr/lib中创建符号链接(重命名为libsqlite3.so(不带.0(,那么在.NET Core中一切都能正常工作。

是否有一些开关也要加载.so.0库?是虫子吗?或者预期的功能?

您应该始终拥有.so,它应该始终是一个链接。

共享对象文件名是如何工作的?

.so.0和.so.0.0.0文件之间的差异

相关内容

最新更新