Sto provando a collegare LizardTech GeoExpress DSDK alla mia applicazione. Io uso gcc in modo che possiamo compilare per piattaforme. Su Linux e Mac questo funziona facilmente: forniscono una libreria statica (libltidsdk.a
) e le intestazioni e tutto ciò che dobbiamo fare è usarle.Collegamento a MSVC DLL da MinGW
Compilare per Windows non è così facile. Hanno costruito la libreria utilizzando Microsoft Visual Studio e usiamo MinGW. Ho letto le Domande frequenti su MinGW e sto riscontrando i seguenti problemi. La libreria è tutto in C++, quindi la mia prima domanda: è possibile?
Il solo collegamento alla DLL fornita restituisce errori di "riferimento non definito" per tutte le chiamate C++ (costruttori, descrittori, metodi, ecc.).
Sulla base del MinGW Wiki: http://www.mingw.org/wiki/MSVC%5Fand%5FMinGW%5FDLLs dovrei essere in grado di utilizzare l'utilità reimp
per convertire un lib in qualcosa di utilizzabile. Ho provato tutti i file .lib forniti da LizardTech e tutti loro danno "libreria di importazione non valida o corrotta". Ho provato entrambe le versioni 0.4 e 0.3 del programma di utilità reimp.
Utilizzando il secondo metodo descritto nel wiki, ho eseguito pexport e dlltool sulla DLL per ottenere un archivio .a, ma questo produce gli stessi riferimenti non definiti.
BTW: Ho letto la discussione qui sotto. Ha lasciato qualche ambiguità sul fatto che sia possibile, e data la pagina Wiki MinGW sembra che questo dovrebbe essere fattibile. Se è impossibile, è tutto ciò che ho bisogno di sapere. Se può essere fatto, mi piacerebbe sapere come posso farlo accadere.
How to link to VS2008 generated .libs from g++
Grazie!
Grazie, questa è esattamente la conferma che stavo cercando. Hanno un'interfaccia c, e sto cercando di usarlo, ma è molto meno potente di quello che è disponibile in C++. Li sto anche spingendo a rilasciare per MinGW. – IndigoFire
Preferisco le versioni mingw di, beh, tutto, in quanto rende la distribuzione davvero semplice quando la dipendenza c-runtime è msvcrt.dll universalmente disponibile, piuttosto che i runtime specifici della versione di Visual Studio msvcr70.dll, msvcr71.dll, msvcr80. dll, msvcr90.dll e ora msvcr100.dll. –