在 Windows 上用 C# 加载 Linux 动态库 (.so)

发布于 2024-12-16 22:06:16 字数 122 浏览 0 评论 0原文

我正在使用 swig 为我的代码生成 C# 包装器。但随后我还需要链接动态库,这是一个 Linux .so 文件。可以从 C# 做到这一点吗?

谢谢

编辑:在 Windows 上使用 .so 文件。

I am using swig to generate a C# wrapper to my code. But then I also need to link the dynamic library, which is a Linux .so file. Is it possible to do this from C#?

Thanks

Edit: using a .so file on Windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

热情消退 2024-12-23 22:06:16

没有直接的方法可以做到这一点。您需要创建所有本机代码(so 本身以及所有依赖项)的本机 Windows 版本。

其他选项包括在 Linux 上编写所有代码(如果可能的话),包括 C# 部分(使用 Mono)。或者创建某种客户端/服务器设置,其中您的本机代码保留在 Linux 上(作为服务器应用程序),而 C# 代码则保留在 Windows 客户端上。如果没有更多细节,很难判断这对您来说是否是一个可行的解决方案。

There is no direct way to do this. You need to create a native Windows version of all your native code (the so itself, plus all dependencies).

Other options include writing all your code on Linux, if possible, including the C# portion (using Mono). Or creating some sort of client/server setup, where your native code remains on Linux (as a server application) and your C# code goes on the Windows-client. If that is a viable solution for you is hard to tell without further details.

风吹短裙飘 2024-12-23 22:06:16

这篇帖子似乎有一些答案Linux,你想在 Windows 中这样做吗?

This Post seems to have some answers for Linux, are you trying to do this in Windows?

最丧也最甜 2024-12-23 22:06:16

您的共享库很可能已被编译为使用 Linux 命令调用。

在“windows”应用程序中使用 linux .so 文件的唯一可能方法是使用 cygwin 编译它(您的应用程序),但这种方式将使您的 Windows 应用程序成为 posix 应用程序,这意味着每次它都必须启动 cygwin运行。

It's more than likely that your shared library will have been compiled to use linux command calls.

The only possible way to use linux .so files in a "windows" app would be to compile it (your app) using cygwin, but that way would make your windows app a posix app which means it would have to fire cygwin up everytime it runs.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文