Dalla libreria statica MinGW (.a) alla libreria statica di Visual Studio (.lib)

Sto cercando di usare xlsLib per creare fogli di calcolo Excel da un’applicazione C ++.

Il problema è che compilando xlsLib, fornisco un file .a (una libreria statica GCC, generata da MinGW). Ma la mia applicazione dipende da un’altra API ( PhysX ) che compila solo con Visual Studio.

Quindi: è ansible trasformare la libreria statica GCC ( xlslib.a ) in un file di libreria statica di Visual Studio ( xlslib.lib )?

Gli archivi delle librerie statiche generate con MinGW sono generalmente compatibili con il compilatore / linker di Visual C ++. Quindi, dovresti essere in grado di usarli direttamente aggiungendo file .a al linker input nelle proprietà del tuo progetto in Visual Studio:

  1. Vai a Properties progetto (Alt-F7).
  2. Nella casella di sinistra, apri Configuration Properties->Linker->Input
  3. Aggiungi un elenco di tutti gli archivi .a che devi utilizzare
  4. Potrebbe essere necessario aggiungere anche la libreria libgcc.a di MinGW

Inoltre, potrebbero verificarsi problemi relativi alle properties of C/C++->Code Generation->Runtime Library librerie di runtime C miste properties of C/C++->Code Generation->Runtime Library , ma ciò dipende dalla configurazione di build che si utilizza con MinGW. A volte è necessario collegarsi a libmsvcrt.a da MinGW ma in molti casi (se non la maggior parte) causa problemi.

Infine, questo collegamento misto MinGW e Visual C ++ funziona generalmente ma per i moduli C e non funziona per C ++, per quanto ne so.

ma l’uso di .a fa sì che il mio .exe non sia in grado di eseguire il debug “Imansible trovare le informazioni di debug”. – entropia, 22 maggio alle 12:27

questo perché la libreria .a non include le informazioni di debug necessarie per il debug. è necessario dire al compilatore di aggiungere informazioni di debug nella compilation se si desidera eseguirne il debug. per mingw, devi aggiungere ” -g ” a CFLAGS quando esegui ” make “, come ” make CFLAGS="-g"

Ecco due risorse che ho trovato utili:

[snip, link errato]

http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html

Modificare. Non riesco a trovare il link che stavo cercando. Nel frattempo, controlla questo: http://www.willus.com/mingw/yongweiwu_stdcall.html

Per quanto ne so, sono la stessa cosa. I file .lib Visual Studio sono anche ar archivi contenenti file object. Hai provato a rinominare il file? 🙂