Pregunta

Pregunta:? ¿Es posible compilar un programa en Linux a través de un archivo .dll

¿Dónde va esto: Este .dll se puede utilizar para escribir una extensión php para algún tipo de software de propiedad de un tercero.

Antecedentes e Investigación:

Se me ha dado una biblioteca llamada proprietary.lib. Tenía curiosidad, ya que nunca he visto la extensión .lib antes, por lo que he escrito:

file proprietary.lib

La salida fue de:

proprietary.lib:  current ar archive

He hecho un poco de investigación y encontró que ar es más o menos tar (y, de hecho, creo que desde entonces ha tar ar reemplazado en la mayoría de los entornos * nix).

Al inspeccionar la página de manual ar, vi la t option, que muestra una tabla con la lista de los contenidos de ese archivo. Bueno. Así que yo escriba:

ar t proprietary.lib

y obtener:

proprietary.dll
proprietary.dll
... (snip X lines) ...
¿Fue útil?

Solución

Se podría tratar de extraer el archivo ar (paquetes Debian son archivos ar, Fwiw) y file ejecutar en el contenido.

No vas a ser capaz de utilizar Windows DLL sin traducción. Los archivos sólo DLL, que yo sepa que el trabajo de forma nativa en Linux se compilan con Mono.

Si alguien le dio una biblioteca binario propietario a código contra, debe verificar que está compilado para la arquitectura de destino (no hay nada como tratar de utilización de la mañana binario ARM en un sistema x86) y que es compilado para Linux.

Una vez dicho esto ... buena suerte. No me gusta la programación contra las bibliotecas de terceros en las que tengo la documentación y la fuente.

Otros consejos

El desarrollo reciente puede haber cambiado la situación: Hay una LoadLibrary función para Linux disponible, que lo hace posible cargar un archivo DLL de Windows y luego llamar a funciones dentro.

Por lo tanto, si el archivo .dll usted tiene en realidad es una DLL de Windows, se puede encontrar una manera de utilizarlo en que el software.

archivos .dll suelen ser compartidas de Windows bibliotecas. (También es posible que alguien en Linux ha construido una biblioteca regular de Linux y lo llamó .dll por alguna razón.)

Es posible que usted podría enlazar con ellos utilizando vino . El apoyo a esta era una vez en allí como experimental - No sé su estado actual.

Sí se puede utilizar DLL con la ayuda de vino. sólo tiene que instalar en Linux wine64

sudo apt-get install wine64
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top