可以在Linux上使用.dll

时间:2010-03-29 14:27:52

标签: linux dll gcc ar

问题:是否可以使用.dll文件在linux上编译程序?

这是怎么回事: 这个.dll将用于编写来自第三方的某些专有软件的php扩展。

背景和研究:

我获得了一个名为proprietary.lib的库。我很好奇,因为我之前从未见过.lib扩展,因此我输入了:

file proprietary.lib

输出结果为:

proprietary.lib:  current ar archive

我做了一些研究,发现ar或多或少tar(实际上,我猜tar已取代ar在大多数* nix中环境)。

检查ar联机帮助页后,我看到了t option,其中显示了该档案内容的表格列表。凉。所以我输入:

ar t proprietary.lib

得到:

proprietary.dll
proprietary.dll
... (snip X lines) ...

5 个答案:

答案 0 :(得分:8)

.dll文件通常是Windows共享库。 (也有可能Linux上的某个人已经构建了一个普通的Linux库,并且出于某种原因称它为.dll。)

您可以使用Wine链接它们。对此的支持曾经作为实验支持 - 我不知道它的当前状态。

答案 1 :(得分:8)

最近的开发可能改变了这种情况:Linux有一个loadlibrary函数,可以加载Windows DLL,然后调用其中的函数。

因此,如果您实际拥有的.dll文件是Windows DLL,则可以找到在软件中使用它的方法。

答案 2 :(得分:5)

您可以尝试提取ar文件(Debian软件包是ar个文件,fwiw)并对内容运行file

如果没有翻译,您将无法使用Windows DLL。我所知道的唯一在Linux上本机工作的DLL文件是用Mono编译的。

如果有人给你一个专有的二进制库来编码,你应该验证它是为目标架构编译的(就像在x86系统上尝试使用ARM二进制文件一样)并且它是为Linux编译的。

有人说......祝你好运。我讨厌针对第三方库的编程,其中我有文档源代码。

答案 3 :(得分:0)

是的,我们可以在wine的帮助下使用dll。 只需在Linux中安装wine64

sudo apt-get install wine64

答案 4 :(得分:0)

普通的DLL文件是Windows的链接库,因此它们不能直接在Linux上运行,但是可以使用.NET Core专门为Linux编译DLL文件。