QT MingGW静态编译遇到的error: openssl-linked坑
- 2021/1/13更新:虽然以上版本均可编译通过了,但是编出来的程序都碰到了和动态库连接的问题,没找到原因(the procedure entry point asn1 could not be located in the dynamic link library)。后来偶然间发现之前用别人静态编译的5.12.9出来的其实在正常电脑上可以用(这又是一个烦人的事,我的电脑没法运行静态编译好的exe文件,会报进入点0x00007之类的错误,哪怕是别人静态编译好的。)附上链接静态编译5.12.9包。 把openssl和static库在同一级目录下放就行了。真香,感谢!
- 用qt 5.14.2进行MinGW静态编译,一直碰到这个问题:ERROR: Feature ‘openssl-linked’ was enabled, but the pre-condition ‘!features.securetransport && libs.openssl’ failed.
- 使用了下面的命令,在qt5.13.0 win32的cmd中,openssl 1.1.1d可以正常使用。感觉能支持的openssl1.1.1d的qt版本最高到5.13.x系列,5.14.x系列还不支持(虽然5.14.2显示自己可以匹配的最高openssl版本是1.1.1d,但是并不能编译通过)。欢迎有空闲时间的小伙伴进行验证。(ps: 1dec2020,亲测5.13.2、5.14.0、5.14.1、5.14.2(这个太奇妙了,从5.13.0一路试上来之后,反而好了),均可)。
configure.bat -static -release -platform win32-g++ -prefix "C:\Qt\Qt5.14.2\5.14.2\mingw73_32_static" -opengl desktop -qt-libpng -qt-libjpeg -openssl-linked -opensource -confirm-license -make libs OPENSSL_LIBS="-llibssl -llibcrypto -lgdi32" -L C:\openssl2\OpenSSL-Win32d\lib\MinGW -I C:\openssl2\OpenSSL-Win32d\include -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtcanvas3d -skip qtcanvas3d -skip qtdatavis3d -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras
- 参考这个帖子,查看正在用的qt版本支持的openssl版本: 查看支持的openssl版本
- 复制粘贴后记得修改qt static和openssl的路径。那些命令的含义可以参考这个帖子: qt 5.12静态编译全流程
- openssl不需要自己静态编译,直接去下载就可以了,下载比较大的版本30-50m的那个,注意32位还是64位,并且注意是不是和正在用的qt版本匹配: openssl编译版本下载
- 之前用最新的5.14.2进行有openssl的静态编译行不通,百度和谷歌了很多帖子,都没有比较新的讨论,很多都是5.11之前的讨论,感觉社区人太少了。
- qt静态编译流程参考这个帖子: qt5.9静态编译
安装的时候mingw32-make后面可以加 -j2/4/8代表不同的线程数,越多越快。
版权声明:本文为weixin_41446504原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。