首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能在dotnet中链接一个.so吗?

你能在dotnet中链接一个.so吗?
EN

Stack Overflow用户
提问于 2020-08-24 19:01:06
回答 1查看 204关注 0票数 0

我有一个使用.so文件的.NET核心项目。我使用DllImport()来导入它。我的问题是这个.so有一个依赖libtomcrypt.so,所以它找不到一些符号(未定义的符号: cipher_descriptor)。

我尝试用C语言导入我的.so,如果我指定链接器变量-ltomcrypt,它就能正常工作。

在.NET核心项目中添加对libtomcrypt.so的引用没有任何帮助,因为它是一个本机.so。

有没有办法将libtomcrypt.so链接到dotnet?

EN

回答 1

Stack Overflow用户

发布于 2020-08-24 22:32:31

先试着用NativeLibrary加载你的库。

代码语言:javascript
复制
static class Library
{
const string MyLibrary = "mylibrary";

static Library()
{
    NativeLibrary.SetDllImportResolver(typeof(Library).Assembly, ImportResolver);
}

private static IntPtr ImportResolver(string libraryName, Assembly assembly, DllImportSearchPath? searchPath)
{
    IntPtr libHandle = IntPtr.Zero;
    if (libraryName == MyLibrary)
    {
        // Try using the system library 'libmylibrary.so.5'
        NativeLibrary.TryLoad("libmylibrary.so.5", assembly, DllImportSearchPath.System32, out libHandle);
    }
    return libHandle;
}

[DllImport(MyLibrary)]
public static extern int foo();
}

Interacting with native libraries in .NET Core 3.0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63559725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档