问题:可以使用.dll文件在linux上编译程序吗?
:这个.dll将用于从第三方为一些专有软件编写一个php扩展。
背景与研究:
我得到了一个名为proprietary.lib的图书馆。我很好奇,因为我以前从未见过.lib扩展,所以我输入了以下内容:
file proprietary.lib产出如下:
proprietary.lib: current ar archive我做了一些研究,发现ar或多或少是tar (事实上,我猜tar在大多数*nix环境中已经取代了ar )。
在检查ar手册页时,我看到了t option,它显示了该存档内容的表列表。凉爽的。所以我输入:
ar t proprietary.lib并得到:
proprietary.dll
proprietary.dll
... (snip X lines) ...发布于 2010-03-29 14:32:37
您可以尝试提取ar文件(Debian包是ar文件,fwiw)并对内容运行file。
如果没有翻译,您将无法使用Windows。我所知道的唯一在Linux上工作的DLL文件是用Mono编译的。
如果有人给您提供了一个专用二进制库来对其进行编码,您应该验证它是为目标体系结构编译的(与尝试在x86系统上使用am ARM二进制代码没有什么不同),并且它是为Linux编译的。
那是said...good的运气。我讨厌针对第三方库编程,因为我有文档和源代码。
发布于 2018-01-08 17:05:41
最近的发展可能已经改变了这种情况: Linux有一个可用的负载库函数,可以加载Windows,然后在其中调用函数。
因此,如果您拥有的.dll文件实际上是Windows,您可能会找到一种方法在您的软件中使用它。
发布于 2010-03-29 14:31:55
.dll文件通常是Windows共享库。(也有可能有人在Linux上构建了一个常规的Linux库,并以某种原因将其命名为.dll。)
您可以使用葡萄酒链接到它们。对此的支持曾经是实验性的--我不知道它目前的状况。
https://stackoverflow.com/questions/2538635
复制相似问题