在Windows上的C#中加载linux动态库(.so)

时间:2011-11-21 08:38:16

标签: c# .net windows shared-libraries swig

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

由于

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

这个Post似乎对Linux有一些答案,您是否尝试在Windows中执行此操作?

答案 2 :(得分:0)

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

在“Windows”应用程序中使用linux .so文件的唯一可行方法是使用cygwin编译它(你的应用程序),但这样会使你的windows应用程序成为posix应用程序,这意味着它必须激活cygwin每次运行都会起来。