denke ich, dass Sie Recht haben, dass die Antwort in this hier relevant ist. Auf UNIX-basierten Systemen, .a
Dateien sind eine spezielle Art von Archiv, eine Bibliothek in Betrieb, die nur statisch in eine Anwendung verknüpft werden (es klingt wie eine .lib
Datei ist die gleiche Sache unter Windows.) Das bedeutet, dass es keine Möglichkeit gibt, diese Bibliothek zur Laufzeit zu laden, da Sie eine dynamische Bibliothek benötigen. Aber wissen, dass dies keine Einschränkung von JNA ist, ist es ein allgemeine Beschränkung, wie die meisten Betriebssysteme funktionieren
Statische Bibliotheken werden "Teil" einer resultierenden ausführbaren Datei (oder Bibliothek) während dynamische Bibliotheken zur Laufzeit geladen werden können.Es gibt Vor- und Nachteile von jedem (zum Beispiel statische Bibliotheken) ein a Anwendung autark, indem Sie nicht darauf angewiesen sind, dass andere Bibliotheken vorhanden sind und in den richtigen Versionen, aber dynamische Bibliotheken können sowohl Speicherplatz auf der Festplatte und im Speicher als auch eine einzige Datei zur Aktualisierung bei Sicherheits - oder anderen Bugfix - Patches speichern). Die meisten Programme, die ich gesehen habe, können sowohl in einer statischen als auch in einer dynamischen (gemeinsam genutzten) Bibliothek kompiliert werden. Daher wäre ich überrascht, wenn Sie nicht irgendwo finden könnten, wonach Sie suchen (oder selbst kompilieren).
Danke für die Antwort. Ich habe eine DLL kompiliert und es funktioniert. –