环境为Win10+Qt 5.14.2+Qt Creator 4.11.1+OpenSSL v3.0.5 x64
编译器为MinGW64 7.3.0
链接器反复报错LNK2019(无法解析的外部符号),LNK1120(才不会告诉你倒腾了半个下午结果发现是项目构建Kits出了问题→_→
在此整理出我认为最简单易行的方法。
首先懒得自己编译,去OpenSSL预编译版本官网下载:Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions
一定要选非Light版本。(!important
注意3.0和1.1版本差异较大,API很多都改了,自行选择。
下好后一路顺着装下来,注意安装目录最好不要有空格,否则待会qmake有可能会出问题(之前手写的时候出过很多问题,不过我后面讲的方法不需要手动写qmake了)。
装好后记住安装目录,打开QC,在项目列表处右击项目,选择添加库:
选择外部库,点击下一步:
按如图所示选择即可:
再点击下一步,点击完成,最后在构建中执行qmake,再重新构建所有项目。
最后把你用到的.dll文件放到项目构建目录下,Over 。
需要注意的是这两个常用的.dll文件在不同的OpenSSL版本下名称不同。
So while previously in 1.0.x there were libeay32 and ssleay32, they are in 1.1.x named libssl and libcrypto(在1.0.x之前的版本中,文件为libeay32.dll和ssleay32.dll,在1.1.x之后的版本中,名字是libssl.dll和libcrypto.dll)
项目构建目录就是你在项目——构建设置中的”构建目录“:
构建选择是Release就进release目录,不然就进 debug。
同理,其它外部库也可用此法引入。
新版本RSA API推荐看别的大佬的文章:OpenSSL 3.0 RSA_钞sir的博客-CSDN博客