Möglich zu verwenden .dll unter Linux
Frage: Ist es möglich, kompilieren Sie ein Programm, unter linux mit ein .dll-Datei?
Wo das hinführt:
Diese .dll wird zum schreiben verwendet eine php-Erweiterung, um einige proprietäre software von Dritten.
Hintergrund und Forschung:
Ich habe eine Bibliothek namens proprietary.lib
. Ich war neugierig, da ich auch noch nie gesehen .lib
Erweiterung vor, ich tippte also:
file proprietary.lib
Wurde die Ausgabe:
proprietary.lib: current ar archive
Ich Tat etwas Forschung und fand, dass ar
ist mehr-oder-weniger tar
(und in der Tat, ich denke tar
hat da ersetzt ar
in den meisten *nix-Umgebungen).
Bei der Inspektion der ar
manpage, ich sah die t option
zeigt eine Tabelle, in der die Inhalte des Archivs. Cool. Also ich tippe:
ar t proprietary.lib
Und erhalten:
proprietary.dll
proprietary.dll
... (snip X lines) ...
- UNIX nicht mit DLLs. In Linux ist die entsprechende Datei-format ist "so" (shared objects) und in Mac OS X ist es "dylib" (dynamische Bibliotheken) und "Bündel".
- Sie sehen, dies ist, wo die Verwirrung kommt in. Von Scheuer-comp.lang.c, es scheint, dass die "DLL" ist ein allgemeiner Begriff für eine Bibliothek, die einfach so passiert zu sein, den Namen Windows-Anwendungen. Ist es so einfach wie kompilieren, die Bibliothek in das ELF-format?
- Ja, so einfach ist das. Du bist verpflichtet, dem Verkäufer der Bibliothek, um Ihnen eine ordnungsgemäße bauen.
- wie haben Sie den Umgang mit diesem Typ von situation ?
- Archive und dlls sind Total anders, keine Ahnung, was die Frage ist, aber es ust eine schlechte Erweiterung. Benennen Sie es um
.ar
, und doppelklicken Sie es in linux
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, das extrahieren der
ar
- Datei (Debian-Paketear
Dateien, fwiw) und führenfile
auf den Inhalt.Du bist nicht in der Lage sein, um Windows-DLLs ohne übersetzung. Die DLL-Dateien, die ich kenne, die arbeiten nativ auf Linux kompiliert werden mit Mono.
Wenn jemand hat Ihnen eine proprietäre Binär-Bibliothek, um code vor, sollten Sie überprüfen, ob es kompiliert für die Zielarchitektur (nichts wie der Versuch, verwenden Sie am ARM binary auf einem x86-system) und dass es kompiliert für Linux.
Dass gesagt wird...viel Glück. Ich hasse die Programmierung mit Bibliotheken von Drittanbietern, wo ich die Dokumentation und der Quelle.
.dll-Dateien sind in der Regel Windows freigegebene Bibliotheken. (Es ist auch möglich, dass jemand auf Linux aufgebaut hat, eine regelmäßige Linux-Bibliothek und rief es .dll aus irgendeinem Grund.)
Es ist möglich, Sie könnte link gegen Sie mit Wein. Der Support für diesen war einmal dort als experimentell - ich weiß nicht Ihren aktuellen status.
Jüngsten Entwicklung verändert die situation: Es ist ein loadlibrary Funktion für Linux verfügbar, das macht es möglich, laden Sie eine Windows DLL und aufrufen von Funktionen innerhalb.
So, wenn die
.dll
- Datei Sie haben, ist eigentlich eine Windows-DLL, können Sie einen Weg finden, um es in Ihre software.Ja, Wir können dll mit Hilfe von wine .
installieren Sie einfach wine64 im linux