静态编译(static)的QT下OpenSSL异常的问题

最近出了个4.7.4版本的QT,于是老蔡换了过去,其间果断又是几个小时的等待编译的辛酸过程。

在电脑持续CPU100%了大概有3个小时后,编译原先动态链接库的程序,发现总是提示有有SSL错误……

[wptabs color=”wpui-light”

effect=”fade”]

QSslSocket: cannot call unresolved function SSLv3_client_method QSslSocket: cannot call unresolved function SSL_CTX_new QSslSocket: cannot call unresolved function ERR_get_error QSslSocket: cannot call unresolved function ERR_error_string[/wptabs]

这次重新编译,老蔡将OpenSSL加入其中了,之前静态编译默认的是不带OpenSSL的,碰到HTTPS就扑街的那种…

所以,据此判断应该是OpenSSL的问题。

[wptabtitle]解决办法:[/wptabtitle]

[wptabs color=”wpui-light”

effect=”fade”]

在网上查了下,OpenSSL要带两个动态库libeay32.dllssleay32.dll,于是再OpenSSL目录下的outdll中找到这两个文件,拷贝到生成的静态exe同目录下,居然就OK了。[/wptabs]

不由得惊叹一声:居然要动态库DLL,但是静态编译的时候没有库冲突,奇怪。