Domanda

Domanda:? E 'possibile compilare un programma su linux utilizzando un file dll

dove questo sta andando: Questa dll sarà utilizzato per scrivere un estensione PHP a qualche software proprietario da parte di terzi.

Fondo e della Ricerca:

Mi è stata data una libreria chiamata proprietary.lib. Ero curioso, come non ho mai visto l'estensione .lib prima, così ho scritto:

file proprietary.lib

Il risultato è stato:

proprietary.lib:  current ar archive

Ho fatto qualche ricerca e ha scoperto che ar è più o meno tar (e in effetti, credo tar da allora ha ar sostituito nella maggior parte degli ambienti * nix).

Dopo aver ispezionato la manpage ar, ho visto il t option, che visualizza un elenco tabella dei contenuti di tale archivio. Freddo. Così ho tipo:

ar t proprietary.lib

E ottenere:

proprietary.dll
proprietary.dll
... (snip X lines) ...
È stato utile?

Soluzione

Si potrebbe provare a estrarre il file ar (pacchetti Debian sono file ar, FWIW) ed eseguire file sui contenuti.

Non sta andando ad essere in grado di utilizzare le DLL di Windows senza traduzione. Gli unici file DLL che so di quel lavoro in modo nativo su Linux sono compilati con Mono.

Se qualcuno ti ha dato una libreria binario proprietario a codice contro, è necessario verificare che è compilato per l'architettura di destinazione (niente come cercare di usare am ARM binario su un sistema x86) e che è compilato per Linux.

Detto questo ... buona fortuna. Io odio la programmazione con le librerie di terze parti dove ho la documentazione e la fonte.

Altri suggerimenti

Lo sviluppo recente potrebbe aver cambiato la situazione: c'è un loadlibrary funzione per Linux disponibili, che lo rende possibile caricare una DLL di Windows e quindi chiamare funzioni all'interno.

Quindi, se il file .dll si ha in realtà è una DLL di Windows, si può trovare un modo per utilizzare in te software.

file

dll sono di solito di Windows librerie condivise. (E 'anche possibile che qualcuno su Linux ha costruito una biblioteca normale Linux e lo ha chiamato dll per qualche motivo.)

E 'possibile si potrebbe collegare contro di loro utilizzando vino . Il supporto per questa volta era in là come sperimentale - non so il suo stato attuale.

Sì Possiamo usare dll con l'aiuto di vino. basta installare wine64 in linux

sudo apt-get install wine64
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top