windows上Qt5.15+openssl1.1.1+msvs2022静态编译32位版本的笔记

本次编译采用的是vs2019社区版。

OPENSLL下载地址
参考这位大佬
大佬的有些问题,本篇已经修改

Openssl编译,qt5.15要求1.1.1的版本,这里下载的版本是1.1.1m的源码。

编译步骤:

(1)安装ActivePerl需要版本5.28.1, 下载地址百度,安装perl成功后,在命令行里输入perl -v,可看到版本提示即可。

(2)安装vs2019后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2019,打开命令提示符

(3)解压openssl源码,然后cd到源码目录下执行: perl configure no-shared VC-WIN32 no-asm --prefix=”D:\openssl\1.1.1g”

其中D:\openssl\1.1.1g表示最终安装的目录。

(4)编译nmake

(5)编译后安装 nmake install

然后到 D:\openssl\1.1.1g 目录下找到编译后的lib库。这个目录应包括include, lib, bin三个子目录。

Qt5.15.2编译,含静态链接openssl

(1)安装ActivePerl,如已经安装则忽略此

(2)安装vs2019后(或其他版本的)在开始程序菜单中单击 X86 Native Tools Command Prompt for VS 2019,打开命令提示符

(3)解压qt5.15.2的源码,然后cd到源码目录下执行:(D:/qt5.15.2/msvc2019-win32-static为最终安装目录)
configure.bat -static -prefix “D:/qt5.15.2/msvc2019-win32-static” -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake tools -nomake examples -nomake tests -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -mp OPENSSL_PREFIX=D:/openssl/1.1.1m OPENSSL_LIBS=”-llibcrypto -llibssl -lgdi32 -lWs2_32 -lwsock32 -ladvapi32 -luser32 -lcrypt32″ -openssl-linked -static-runtime -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview

静态链接openssl的重点是:-openssl-linked。其中OPENSSL_PREFIX=D:/openssl/1.1.1m指向我们前面编译好的openssl静态库主目录。

(4)编译,安装jom后多线程编译jom -j 4

jom下载:https://iso.mirrors.ustc.edu.cn/qtproject/official_releases/jom/jom_1_1_3.zip

(5)编译后安装jom install

漫长的等待,完成!

将qt5.15.2加入到QtCreator

(1)点击菜单 工具 => 选项: Kits => Qt Version,添加我们编辑的版本,选择qmake.exe即可。

(2)构建套件 中添加一个。 名称可以取Desktop Qt %{Qt:Version} MSVC2022 32Bit Static

编译器选择 Microsoft Visual C++ Compiler 17.0… .(x86) 注意选这个x86的,因为我们编译的是32位。

我编译程序提示少头文件,于是我在Environment里面加入了:

INCLUDE=${INCLUDE};C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt

LIB=${LIB};C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x86

最后Qt版本选择我们刚加的,保存即可。

安装遇到一些问题,默认路径在c盘没有权限创建文件夹,根据帮助文档OPENSLL目录下的 INSTALL文档得知可以修改makefile (第一步配置完成后就会生成makefile)
OPENSSLDIR_dev=D: //原来是C盘,改为D盘
OPENSSLDIR_dir=\Program Files (x86)\Common Files\SSL

我是用在qt 中所以–prefix配置的自定义安装路径为D:\Qt\5.15.2\msvc2019,这样安装完成后就可以使用了,不用手动拷贝include lib dll

注:shared表示编译动态库,no-shared表示编译静态库;no-asm 在交叉编译过程中不使用汇编代码代码加速编译过程;–prefix 指定生成lib include bin目录的路径,不修改此项则默认为OPENSSLDIR目录
如果需要使用 asm,则需要安装dmake工具并且配置(我没有用过)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt5.15.2是一款流行的跨平台开发框架,Mingw是一个在Windows上使用的开发工具集。静态编译是指将所有的库和依赖包都包含在最终的可执行文件中,使得程序能够在不安装任何额外依赖的情况下运行。 要在Qt5.15.2中使用Mingw进行静态编译,首先需要确保已经正确安装了Qt和Mingw。然后,按照以下步骤进行操作: 1. 打开Qt Creator,并创建您的Qt项目。 2. 在项目的.pro文件中,添加以下内容,指定使用Mingw编译器: ``` QMAKE_CC = gcc QMAKE_CXX = g++ QMAKE_LINK = g++ ``` 3. 添加静态编译标志,将所有库和依赖包打包到可执行文件中: ``` CONFIG += static ``` 4. 在.pro文件中,排除不需要的模块以减小可执行文件的大小。例如,如果您不需要Qt的Web模块,可以添加以下代码: ``` QT -= web ``` 5. 点击构建按钮进行编译。在构建过程中,Qt将使用Mingw编译器进行静态编译,并生成可执行文件。 需要注意的是,静态编译可能会增加最终可执行文件的大小,并且可能需要更多的时间进行编译。另外,由于静态编译将所有库和依赖项包含在可执行文件中,因此可执行文件之间的共享可能性较差。 希望以上回答能够帮助您理解如何在Qt5.15.2和Mingw上进行静态编译。如有任何疑问,请随时提问。 ### 回答2: 在 Windows 平台上,使用 Qt 5.15.2 版本进行 MingW 静态编译的方法如下: 首先,确保已经成功安装了 MingW 工具链,并进行了相关的环境配置。 接下来,下载 Qt 5.15.2 版本的源代码,并解压到目标文件夹中。 打开命令提示符(CMD)窗口,进入到解压后的 Qt 源代码文件夹中,执行以下命令: ``` qmake -spec win32-g++ mingw32-make ``` 这将会生成 Qt静态库文件,其中包括静态链接的 Qt 核心库以及其他组件。 静态链接库生成完成后,可以将生成的静态库文件用于自己的项目中。在自己的项目配置文件中加入对应的静态库路径和库文件名,然后进行静态编译。 需要注意的是,静态编译时,还需要将 Qt 使用的一些依赖库也进行静态编译,并将其链接到最终的可执行文件中,以确保在没有额外的依赖环境下能够正常运行。 以上就是使用 Qt 5.15.2 版本进行 MingW 静态编译的基本步骤,根据具体需求,还可以进一步配置编译选项,以满足自己的项目需求。 ### 回答3: QT 是一个跨平台的 C++ 图形用户界面框架,可以在多种操作系统上开发和部署应用程序。而静态编译是将程序所依赖的库文件和可执行文件打包在一起,使应用程序在运行时不需要外部的库文件依赖。 在进行 QT5.15.2 的静态编译时,需要使用 MinGW 工具链进行编译。首先需要下载并配置好 Qt 5.15.2 的源码包以及 MinGW 工具链。接下来,打开命令行工具,进入到 Qt 源码的根目录。 首先,我们需要配置 qmake,以便正确地进行编译。在命令行中输入以下命令: ``` ./configure -prefix /path/to/installation/folder -opensource -confirm-license -static -no-openssl -no-libjpeg ``` 其中,`/path/to/installation/folder` 是你希望安装 Qt 的路径,可以自行指定。`-static` 参数表示进行静态编译,`-no-openssl` 和 `-no-libjpeg` 则表示不使用 OpenSSL 和 libjpeg 库,你可以根据自己的需要添加或删除对应的参数。 接下来,输入以下命令,进行编译和安装: ``` mingw32-make mingw32-make install ``` 编译过程可能会需要一些时间,请耐心等待。完成后,你将在指定的路径下找到编译好的静态库和可执行文件。 使用这些静态库时,需要在项目的.pro 文件中添加对应的库依赖,例如: ``` LIBS += -L/path/to/Qt/libs -lQt5Core -lQt5Gui -lQt5Widgets ``` 需要注意的是,在进行静态编译时,还需要同时安装和配置 MinGW 工具链,确保编译的二进制文件与你的目标环境一致。 总结起来,静态编译 QT5.15.2 使用 MinGW 工具链需要下载并配置好源码包,然后通过命令行工具进行配置、编译和安装。最后,在项目的.pro 文件中添加对应的库依赖,以便正确地进行静态编译。 希望以上回答对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值