相关资料:
https://www.zhihu.com/question/51582693
然后关于是哪一个软件带了openssl的,我也不确定。
dll的加载有显示链接(程序运行时候LoadLibrary动态加载)和隐式链接(编译时候就需要)。
如果我没有记错,Qt默认是采用的显示链接openssl库,所以应该编译是没有问题的,只是运行的时候提示找不到。
Windows系统上需要自己安装OpenSSL,不是自带的。但是很多软件可能在安装的时候就顺带安装了OpenSSL,所以就不需要再安装了。(此处的是有条件的,后面再说)
因为Qt不可能知道每台电脑上的OpenSSL库的安装路径,所以LoadLibrary的时候也不可能指定绝对路径。所以这里去加载ssl库的时候,顺序大致是这样的:
1、先从已经加载到内存的dll中找同名的dll,找到了就加载。
2、从系统已知dll列表查找。这个列表记录在注册表里面。
3、应用程序所在目录。
4、当前工作目录。
5、系统目录(%System%)
6、Windows目录(%Windir%)
7、环境变量PATH中指定的目录(%PATH%)
更具体的可以看这里 Dynamic-Link Library Search Order
然后关于是哪一个软件带了openssl的,我也不确定。