12.Qt静态编译与使用

一、前言

Qt正常下载只提供动态库,所以每次写好软件,还需要打包一大堆动态库,有时候会觉得比较麻烦,而本文就是来提供静态编译Qt库、并使用Qt的方法。

因为目前最新的长期支持版本就是6.5.3,也就是本文将要静态编译的版本。

参考的资料有:

二、环境搭建

想要亲自在windows平台上编译Qt静态库,你需要提前在你的电脑上下载好以下几个软件:

其中vs需要安装C++开发组件:

image-20231024134804621

具体的安装过程比较简单,而且网上也有很多其它教程,正常安装即可,这里就不再做详细介绍了。

需要注意的是ninja下载后只有一个可执行文件,为了方便,你可以直接将它复制到系统目录中:C:\Windows\System32

全部安装完成后,来到控制台尝试能不能输出响应的版本号,可以的话,就说明到目前为止一切正常:

image-20231024135631547

最后,你还需要下载Qt的源码,也就是直接用Qt在线下载器下载即可:

image-20231024135755930

自此,前置工作就完成了。

三、开始编译

注意:整个编译过程大概需要使用115G大小的磁盘空间,请确保当前你当前电脑的磁盘空间足够。

首先在源码文件所在文件夹中,新建一个build文件夹:

image-20231024135912938

然后在开始菜单中,打开VS的命令行工具:

image-20231024140003138

在该命令行工具中,进入我们的构建文件夹:

image-20231024140221475

然后运行以下命令:

..\Src\configure.bat  -static -prefix "D:\Qt\6.5.3-static"  -debug-and-release

image-20231024140454247

注意这里的路径D:\Qt\6.5.3-static,为我想要让它最后安装的地方,你也可以替换为其它的。

其中-static就是静态编译的意思,而后面的-debug-and-release,则表示将调试版发行版都进行编译。

等待配置完成后,再运行命令cmake --build .开始构建:

image-20231024140636938

然后就是慢慢等编译了,这个过程比较漫长,如果电脑配置较低,估计需要几个小时:

image-20231024175805321

编译完成后,继续运行命令cmake --install .即可将编译好的静态库安装到前面我们所指定的目录中去:

image-20231024180022335

此时你就可以删除前面的build文件夹,释放110多G的空间,它已经没用了。

四、使用静态库

1.Qt creater

点击:编辑->Preferences

image-20231024160258807

选择:构建套件->Qt版本->添加

image-20231024160421417

顺着进入静态库目录中,选择qmake,打开即可:

image-20231024180655902

返回后,点击应用:

image-20231024180756227

来到构建套件,点击添加

image-20231024180842936

给该构建套件取一个名字,选择刚才添加的静态库版本,点击确认:

image-20231024181131697

随便打开一个项目,或者新建一个项目,然后选择旁边的6.5.3-static,点击一下就能用了:

image-20231024181353141

然后就可以选择debugrelease进行构建:

image-20231024181448344

2.VS

点击扩展,管理扩展

image-20231024181932455

搜索Qt,安装下面这个扩展,下载后,重启VS进行安装:

image-20231024182002341

然后就能在扩展上看到该扩展,点击进入Options

image-20231024182035737

点击Versions,添加新的Qt版本,然后点击右边那个文件夹来选择Qt版本:

image-20231024182132331

选择编译好的静态版本

image-20231024182243423

成功后,点击确认即可,如果需要在已有的qt项目中使用,只需要在你项目属性中,选择该静态版本即可:

image-20231024182506513

五、下载成品

如果觉得麻烦,也可以直接关注本文末的公众号,回复:Qt静态库

后台会自动发送我已经编译好的Qt静态库的下载链接。

作者:余识
全部文章:0
会员文章:0
总阅读量:0
c/c++pythonrustJavaScriptwindowslinux