Je reçois une erreur ci-dessous lors de la migration de mon projet de VS2008 à VS2015.
21>TFCLd.lib(cryptlib.obj) : warning LNK4217: locally defined symbol _fprintf imported in function _OpenSSLDie
21>TFCLd.lib(rsa_sign.obj) : warning LNK4049: locally defined symbol _fprintf imported
21>TFCLd.lib(cryptlib.obj) : error LNK2019: unresolved external symbol __imp____iob_func referenced in function _OpenSSLDie
21>TFCLd.lib(rsa_sign.obj) : error LNK2001: unresolved external symbol __imp____iob_func
Le projet repose sur VS2008 mais avec l'erreur ci-dessus dans VS2015. Puis-je savoir ce qui me manque?.
Placez ceci au début de votre fichier d’en-tête de classe ou dans stdafx.h
FILE _iob[] = { *stdin, *stdout, *stderr };
extern "C" FILE * __cdecl __iob_func(void) { return _iob; }
Jettes un coup d'oeil à:
http://openssl.6102.n7.nabble.com/Compiling-OpenSSl-Project-with-Visual-Studio-2015-td59416.html
Modification de la ligne 310 du fichier e_os.h dans le répertoire racine openssl à partir de# if _MSC_VER> =1300
à # if _MSC_VER> =1300 && _MSC_VER <= 1800
résout le problème.
L’affiche originale décrit la cause du problème:
Dans Visual Studio 2015, les bibliothèques avec les anciens noms ont été repensées.
Visual Studio 2015 est appelé _MSC_VER == 1900.
Assurez-vous que votre libcurl.lib a été compilé avec le même IDE (MSVC 2015) que votre application.
Votre version openSSL est obsolète pour VS2015. Téléchargez et installez la dernière version stable à partir de https://www.openssl.org/source/
Edit: Comment l'installer: https://www.youtube.com/watch?v=icNn-eJif9k
En règle générale, cliquez sur le projet dans l'explorateur de solutions, puis sélectionnez -> Propriétés -> C/C++ -> Génération de code -> Bibliothèque d'exécution. Faire les bibliothèques et les binaires toute la même option.