ran*_*ero 17 linux dll gcc unix-ar
问题:是否可以使用.dll文件在linux上编译程序?
这是怎么回事: 这个.dll将用于编写来自第三方的某些专有软件的php扩展.
背景与研究:
我得到了一个名为的图书馆proprietary.lib.我很好奇,因为我之前从未见过.lib扩展,所以我打字:
file proprietary.lib
Run Code Online (Sandbox Code Playgroud)
输出是:
proprietary.lib: current ar archive
Run Code Online (Sandbox Code Playgroud)
我做了一些研究,发现它ar或多或少tar(事实上,我认为tar已经ar在大多数*nix环境中被替换).
在检查该ar联机帮助页时,我看到了该页面t option,其中显示了该存档内容的表格列表.凉.所以我键入:
ar t proprietary.lib
Run Code Online (Sandbox Code Playgroud)
得到:
proprietary.dll
proprietary.dll
... (snip X lines) ...
Run Code Online (Sandbox Code Playgroud)
Ber*_*Ber 10
最近的开发可能改变了这种情况:Linux 有一个loadlibrary函数,可以加载Windows DLL,然后调用其中的函数.
因此,如果.dll您实际拥有的文件是Windows DLL,您可能会找到在软件中使用它的方法.
您可以尝试解压缩ar文件(Debian包是ar文件,fwiw)并运行file内容.
如果没有翻译,您将无法使用Windows DLL.我所知道的唯一在Linux上本机工作的DLL文件是用Mono编译的.
如果有人给你一个专有的二进制库来编码,你应该验证它是为目标架构编译的(就像在x86系统上尝试使用ARM二进制文件一样)并且它是为Linux编译的.
那就是说...祝你好运.我讨厌针对我拥有文档和源代码的第三方库编程.