我有带 MSVC 的 Qt 4.8.4(默认安装)。在我的应用程序中,我使用 ssl 连接到服务器。QtNetworkd4.dll 需要运行时 libeay32.dll 和 ssleay32.dll 如果我将这些库放在我的应用程序目录中,一切正常。
我试图将openssl库静态编译到我的应用程序中,虽然编译正常,但在启动应用程序期间抱怨未解析的符号,直到我将libeay32.dll和ssleay32.dll放入应用程序文件夹。
所以问题是:将这些库编译到我的应用程序中是真的吗,因为 QtNetwordkd4.dll 不会在我的应用程序二进制文件中查找所需的函数/符号,我宁愿用内置的 openssl 编译整个 Qt?像这样:
configure -openssl -I C:\OpenSSL-Win32\include -L C:\OpenSSL-Win32\lib\VC\static
或者我想要做的实际上是可行的,而我只是做错了什么,比如 libeay32 和 ssleay32 的错误版本等?
我试图用静态 openssl 编译有两个原因
- 我不必将 libeay32 和 ssleay32 放在我的应用程序目录中
- 恐怕在某些机器上可能已经安装了不同版本的 openssl,我的应用程序将与系统目录中的这些库进行交互。