Sto cercando di utilizzare una libreria compilata con mingw in Visual Studio. Tuttavia, ottengo i seguenti errori del linker:Visual Studio 15 __imp___iob, __imp___pctype, __imp___mb_cur_max
errore LNK2001: simbolo esterno __imp___iob
errore LNK2019: simbolo esterno non risolto __imp___pctype riferimento in funzione
errore LNK2019: simbolo esterno non risolto __imp____mb_cur_max riferimento in funzione
errore LNK2001: simbolo esterno _fprintf
Sono stato in grado di correggere l'errore _fprintf collegandolo a legacy_stdio_definitions.lib come da questo post: unresolved external symbol __imp__fprintf and __imp____iob_func, SDL2.
Tuttavia, non ho idea di come risolvere gli altri tre elementi esterni non risolti. Come posso risolvere questo? Le librerie funzionano perfettamente in Visual Studio 2013.
Edit:
Va bene qui è un aggiornamento. Ho spostato libmsvcrt.a dalla cartella mingw lib in Visual Studio e l'ho aggiunto alle impostazioni del linker. Ora sembra funzionare correttamente.
La squadra MinGW ha un sacco di lavoro da fare per rendere i propri file .h compatibile con la versione VS2015 del CRT. Non trattenere il respiro per questo, probabilmente sarai bloccato con la versione VS2013 per un po '. –
Prima di contrassegnare la risposta qui sotto, c'è qualche trucco veloce per farlo funzionare? In base a questo: http://stackoverflow.com/questions/30412951/unresolved-external-symbol-imp-fprintf-and-imp-iob-func-sdl2, si può risolvere l'errore __imp___iob definendo __imp___iob per restituire una sorta di array. Come procedere nel correggere gli altri due errori del linker e come sarebbe definito questo array? –
Basta interrompere le funzioni di runtime C in un modo molto difficile da diagnosticare. Non andare lì. –