Ich versuche, das LizardTech GeoExpress DSDK in meine eigene Anwendung einzubinden. Ich verwende gcc, damit wir auf verschiedenen Plattformen kompilieren können. Unter Linux und Mac funktioniert das problemlos: Sie stellen eine statische Bibliothek ( libltidsdk.a
) und Kopfzeilen und wir müssen sie nur noch verwenden.
Das Kompilieren für Windows ist nicht so einfach. Sie haben die Bibliothek mit Microsoft Visual Studio erstellt, und wir verwenden MinGW. Ich habe die MinGW-FAQ gelesen und stoße auf die folgenden Probleme. Die Bibliothek ist komplett in C++ geschrieben, daher meine erste Frage: Ist das überhaupt möglich?
Nur Verknüpfung gegen die DLL, wie bereitgestellt ergibt "undefinierte Referenz" Fehler für alle C++-Aufrufe (Konstruktoren, desctructors, Methoden, etc.).
Basierend auf dem MinGW-Wiki: http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs Ich sollte in der Lage sein, das Dienstprogramm reimp
um eine .lib in etwas Brauchbares umzuwandeln. Ich habe alle von LizardTech zur Verfügung gestellten .lib-Dateien ausprobiert, und sie geben alle "ungültige oder beschädigte Importbibliothek" an. Ich habe sowohl Version 0.4 als auch 0.3 des reimp-Dienstprogramms ausprobiert.
Mit der zweiten Methode, die im Wiki beschrieben wird, habe ich pexport und dlltool über die Dll laufen lassen, um ein .a-Archiv zu erhalten, aber das erzeugt die gleichen undefinierten Referenzen.
Übrigens: Ich habe die Diskussion unten gelesen. Es ließ einige Unklarheit darüber, ob dies möglich ist, und angesichts der MinGW Wiki-Seite scheint es wie dies sollte machbar sein. Wenn es unmöglich ist, ist das alles, was ich wissen muss. Wenn es machbar ist, würde ich gerne wissen, wie ich das hinbekomme.
Wie zu verknüpfen VS2008 generiert .libs von G++
Danke!