windows10+QT5.12.9,在调试openssl-rsa加密过程中,出现这个问题,参考网络和实际解决办法,已解决,流程如下:
在解密c或cpp文件中的包含头文件的下方加入OpenSSL的链接头文件
extern "C"{
#include "openssl/applink.c"
};
添加或编译成功则继续,编译失败则报错如下信息等大概20个错误
include\openssl\applink.c:-1: In function 'void** OPENSSL_Applink()':
include\openssl\applink.c:95: error: invalid conversion from 'void* (*)()' to 'void*' [-fpermissive]
OPENSSL_ApplinkTable[APPLINK_STDIN] = app_stdin;
解决办法:
全部强制转换为(void*)类型,如下
OPENSSL_ApplinkTable[APPLINK_STDIN] = (void*)app_stdin; OPENSSL_ApplinkTable[APPLINK_STDOUT] = (void*)app_stdout; OPENSSL_ApplinkTable[APPLINK_STDERR] = (void*)app_stderr; OPENSSL_ApplinkTable[APPLINK_FPRINTF] = (void*)fprintf; OPENSSL_ApplinkTable[APPLINK_FGETS] = (void*)fgets; OPENSSL_ApplinkTable[APPLINK_FREAD] = (void*)fread; OPENSSL_ApplinkTable[APPLINK_FWRITE] = (void*)fwrite; OPENSSL_ApplinkTable[APPLINK_FSETMOD] = (void*)app_fsetmod; OPENSSL_ApplinkTable[APPLINK_FEOF] = (void*)app_feof; OPENSSL_ApplinkTable[APPLINK_FCLOSE] = (void*)fclose; OPENSSL_ApplinkTable[APPLINK_FOPEN] = (void*)fopen; OPENSSL_ApplinkTable[APPLINK_FSEEK] = (void*)fseek; OPENSSL_ApplinkTable[APPLINK_FTELL] = (void*)ftell; OPENSSL_ApplinkTable[APPLINK_FFLUSH] = (void*)fflush; OPENSSL_ApplinkTable[APPLINK_FERROR] = (void*)app_ferror; OPENSSL_ApplinkTable[APPLINK_CLEARERR] = (void*)app_clearerr; OPENSSL_ApplinkTable[APPLINK_FILENO] = (void*)app_fileno; OPENSSL_ApplinkTable[APPLINK_OPEN] = (void*)_open; OPENSSL_ApplinkTable[APPLINK_READ] = (void*)_read; OPENSSL_ApplinkTable[APPLINK_WRITE] = (void*)_write; OPENSSL_ApplinkTable[APPLINK_LSEEK] = (void*)_lseek; OPENSSL_ApplinkTable[APPLINK_CLOSE] = (void*)_close;
完成后再次重新编译,通过。。。