2010-09-08 14 views

Antwort

2

Leider nein. Dynamic Link Libraries sind für das Laden von Runtime erforderlich.

0

Haben Sie Zugriff auf den Quellcode? Oder zumindest eine Header-Datei? Wenn Sie dies tun, können Sie entweder eine gemeinsam genutzte Bibliothek oder eine Python-Erweiterung erstellen, die mit der Bibliothek verknüpft ist. Da Sie DLLs erwähnt haben, nehme ich an, dass Sie an Windows arbeiten. This tutorial kann nützlich sein.

3

In der Theorie ja; in der Praxis wahrscheinlich nicht - und schon gar nicht so einfach wie eine DLL. Statische Bibliotheken sind im Wesentlichen nur Sammlungen von Objektdateien und benötigen einen vollständigen Linker, um alle möglicherweise darin enthaltenen Verschiebungsreferenzen korrekt aufzulösen. Es könnte möglich sein, Ihre statische Bibliothek zu nehmen und ihre Inhalte einfach zu einer gemeinsamen Bibliothek zu verknüpfen, aber das würde voraussetzen, dass die statische Bibliothek als positionsunabhängiger Code (PIC) erstellt wurde, was nicht garantiert ist. Theoretisch gibt es keinen Grund, warum die Arbeit, die ein vollständiger Linker tun würde, um die Bibliothek zu verbinden, zur Laufzeit nicht möglich wäre, aber in der Praxis gibt es dafür keinen Standardcode. Ihre beste Option ist wahrscheinlich, die Quelle oder eine freigegebene Version der Bibliothek aufzuspüren.

0

Haben Sie eine statische Bibliothek oder haben Sie eine .lib-Datei und nehmen an, dass es sich um eine statische Bibliothek handelt? Unter Windows kann eine LIB-Bibliothek eine Importbibliothek oder eine statische Bibliothek sein. Eine Importbibliothek wird neben der gleichnamigen DLL (z. B. kernel32.dll und kernel32.lib) erstellt. Es wird zur Verbindungszeit verwendet, um die Importadressentabelle der ausführbaren Datei aufzufüllen. Eine statische Bibliothek enthält Code, der zur Verbindungszeit in die ausführbare Datei kopiert wird.

Wenn Sie Zugriff auf einen Compiler haben, können Sie auch ein Erweiterungsmodul erstellen, das die statische Bibliothek verwendet. Für weitere Einzelheiten siehe the Python docs

Verwandte Themen