vs2015使用低版本编译的openssl问题
Posted yuandaozhe
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2015使用低版本编译的openssl问题相关的知识,希望对你有一定的参考价值。
用Vs2005编译的openssl,在vs2015中使用就悲剧了,报如下错误
1>libeay32.lib(cryptlib.obj) : error LNK2019: 无法解析的外部符号 __vsnprintf,该符号在函数 _OPENSSL_showfatal 中被引用 1>libeay32.lib(cryptlib.obj) : error LNK2019: 无法解析的外部符号 _vfprintf,该符号在函数 _OPENSSL_showfatal 中被引用 1>libeay32.lib(cryptlib.obj) : error LNK2019: 无法解析的外部符号 ___iob_func,该符号在函数 _OPENSSL_showfatal 中被引用 1>libeay32.lib(pem_lib.obj) : error LNK2001: 无法解析的外部符号 ___iob_func 1>libeay32.lib(rsa_sign.obj) : error LNK2001: 无法解析的外部符号 ___iob_func 1>libeay32.lib(ui_openssl.obj) : error LNK2001: 无法解析的外部符号 ___iob_func
解决方案如下
#ifdef WIN32 #pragma comment(lib,"User32.lib") #pragma comment(lib,"Advapi32.lib") #pragma comment(lib,"Gdi32.lib") #pragma comment(lib,"legacy_stdio_definitions.lib") #pragma comment(lib,"libeay32.lib") #pragma comment(lib,"ssleay32.lib") #endif #if _MSC_VER>=1900 #include "stdio.h" _ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned); #ifdef __cplusplus extern "C" #endif FILE* __cdecl __iob_func(unsigned i) { return __acrt_iob_func(i); } #endif /* _MSC_VER>=1900 */
以上是关于vs2015使用低版本编译的openssl问题的主要内容,如果未能解决你的问题,请参考以下文章