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) ...
War es hilfreich?

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top