2010-09-08 16 views

Respuesta

2

Lamentablemente, no. Las bibliotecas de vínculos dinámicos son necesarias para la carga en tiempo de ejecución.

0

¿Tiene acceso al código fuente? ¿O al menos un archivo de cabecera? Si lo hace, entonces puede crear una biblioteca compartida o una extensión de Python que enlace a la biblioteca. Como mencionó las DLL, supongo que está trabajando en Windows. This tutorial puede ser útil.

3

En teoría, sí; en la práctica, probablemente no, y ciertamente no tan simple como una DLL. Las bibliotecas estáticas son esencialmente solo colecciones de archivos de objeto, y necesitan un enlazador completo para resolver correctamente todas las referencias de reubicación que puedan contener. Podría ser posible tomar su biblioteca estática y simplemente vincular sus contenidos para formar una biblioteca compartida, pero eso requeriría que la biblioteca estática se haya construido como código independiente de posición (PIC), lo cual no está garantizado. En teoría, no hay ninguna razón por la que el trabajo que un enlazador completo haría para vincular la biblioteca no podría hacerse en tiempo de ejecución, pero en la práctica no existe un código estándar para hacerlo. Su mejor opción real es, probablemente, rastrear el origen o una versión compartida de la biblioteca.

0

¿Tiene una biblioteca estática o tiene un archivo .lib y asume que es una biblioteca estática? En Windows, una biblioteca .lib puede ser una biblioteca de importación o una biblioteca estática. Se crea una biblioteca de importación junto con el dll del mismo nombre (por ejemplo, kernel32.dll y kernel32.lib). Se usa en el momento del enlace para rellenar la tabla de direcciones de importación del ejecutable. Una biblioteca estática contiene código que se copiará en el ejecutable en el momento del enlace.

Si tiene acceso a un compilador, otra opción puede ser crear un módulo de extensión que haga uso de la biblioteca estática. Para más detalles, vea the Python docs

Cuestiones relacionadas