静态编译(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.dll和ssleay32.dll,于是再OpenSSL目录下的outdll中找到这两个文件,拷贝到生成的静态exe同目录下,居然就OK了。[/wptabs]
不由得惊叹一声:居然要动态库DLL,但是静态编译的时候没有库冲突,奇怪。