Möglich, eine DLL unter Linux zu verwenden,
Frage
Frage: Ist es möglich, ein Programm unter Linux mit einer DLL-Datei zu kompilieren
Wo dies geht: Diese DLL wird verwendet, um eine PHP-Erweiterung zu einem gewissen proprietären Software von einem Dritten zu schreiben.
Hintergrund und Forschung:
Ich habe eine Bibliothek namens proprietary.lib
gegeben. Ich war neugierig, wie ich sie noch nie die .lib
Erweiterung gesehen haben, so schrieb ich:
file proprietary.lib
Der Ausgang war:
proprietary.lib: current ar archive
habe ich einige der Forschung und fand, dass ar
ist mehr oder weniger tar
(und in der Tat, ich denke, tar
hat seit ersetzt ar
in den meisten * nix-Umgebungen).
Bei dem ar
manpage Inspektion, sah ich die t option
, die eine Tabelle des Inhalts dieses Archivs Auflistung zeigt. Cool. Also eingeben:
ar t proprietary.lib
Und get:
proprietary.dll
proprietary.dll
... (snip X lines) ...
Lösung
Sie könnten versuchen, die ar
Datei zu extrahieren (Debian-Pakete sind ar
Dateien, FWIW), und führen file
auf den Inhalt.
Sie werden in der Lage sein nicht Windows-DLLs ohne Übersetzung zu verwenden. Die einzige DLL-Dateien, dass ich von dieser Arbeit weiß nativ unter Linux mit Mono zusammengestellt.
Wenn jemand hat Ihnen eine eigene binäre Bibliothek Code gegen, sollten Sie überprüfen, sie für die Zielarchitektur (nichts wie der Versuch, zu verwenden am ARM binäre auf einem x86-System) kompiliert und dass es für Linux kompiliert.
That being said ... viel Glück. Ich hasse die Programmierung gegen Bibliotheken von Drittanbietern, wo ich die Dokumentation haben und die Quelle.
Andere Tipps
Die jüngste Entwicklung, die Situation könnte sich geändert haben: Es gibt einen Loadlibrary Funktion für Linux zur Verfügung, das es macht möglich, eine Windows-DLL zu laden und dann Funktionen aufrufen innerhalb.
Also, wenn die .dll
Datei, die Sie tatsächlich haben eine Windows-DLL ist, können Sie einen Weg finden, es Software in den Sie zu verwenden.
DLL-Dateien sind in der Regel Windows-Bibliotheken gemeinsam genutzt. (Es ist auch möglich, dass jemand auf Linux eine regelmäßige Linux-Bibliothek gebaut hat und nannte es aus irgendeinem Grunde .dll).
Es ist möglich, dass Sie gegen sie in Verbindung bringen könnte mit Wine . Unterstützung hierfür war einmal dort als experimentell - ich weiß nicht seinen aktuellen Status kennen.
Ja, wir können mit Hilfe von Wein verwenden dll. einfach installieren wine64 in linux
sudo apt-get install wine64