怎样静态编译Qt程序

 时间:2025-01-08 22:00:28

在默认情况下,我们用QtCreator编译程序时,使用的是动态编译。也就是说,编译好的程序在运行时需要另外加上相应的Qt库文件,否则就会出错。如果你想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。那么,怎样在Windows下静态编译Qt程序呢?

工具/原料

Qt源码包

一、问题描述

1、当我们使用动态编译的方法编译生成Qt程序时,即使是采用release方式编译,也需要同时提供相应的Qt库才能正常运行。否则,就会报错,提示缺少Qt库。

怎样静态编译Qt程序

2、但是,由于安装Qt时默认的是使用动态库,因此并没有提供编译好的静态库下载。因此,我们需要下载相应的Qt源码,自己动手生成静态库。

怎样静态编译Qt程序

3、静态库生成以后,我们再在QtCreator中将编译方式设置为静态编译。这样,生成的可执行文件就可以完美地不加任何库文件独立运行了。

怎样静态编译Qt程序

二、下载源码包

1、首先,我们需要从Qt官网下载对应的Qt源码。在这里,我以在Windows下编译Qt程序为例。我们在官网上找到“Source packages”一项,下载对应的源码包(直接点击zip三个字即可下载)。

怎样静态编译Qt程序

2、下载到本地电脑上,是一个ZIP压缩包。我们将此包解压到一个空余磁盘较多的文件夹下(注意,等下生成静态库时需要占用大量磁盘空间,谨慎起见,请至少保证该磁盘下有10G左右空间)。

怎样静态编译Qt程序

三、下载python

1、接下来,前往python官网下载python并安装。python的官网很好找,百度一下即可,安装方法也很简单,在此我就不再多说了。

怎样静态编译Qt程序

四、编译静态库

1、现在,进入解压后的Qt源码文件夹下的qtbase\mkspecs 文件夹下。

怎样静态编译Qt程序

2、再根据你安装的Qt版本进入相应的文件夹下,我这里是win32-msvc2013。

怎样静态编译Qt程序

3、打开文件夹下的qmake.conf文件,根据它include的内容再定位到相应的文件。我这里是上级文件夹下的common目录下的msvc-desktop.conf文件。

怎样静态编译Qt程序

4、打开对应的文件后,找到以下编译标志:QMAKE_CFLAGS_RELEASE = -O2 -MDQMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -ZiQMAKE_CFLAGS_DEBUG = -Zi -MDd将其中的MD全部修改为MT(见粗体字,也就是将动态编译修改为静态编译):QMAKE_CFLAGS_RELEASE = -O2 -MTQMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -ZiQMAKE_CFLAGS_DEBUG = -Zi -MTd

怎样静态编译Qt程序

5、点击开始菜单(不要问为什么我的Win8.1也有开始菜单,用了软件,没有的自己费点工夫找一下相应的位置),打开Visual Studio Tools文件夹,然后打开“VS2013开发人员命令提示”。

怎样静态编译Qt程序
怎样静态编译Qt程序

6、在“VS2013开发人员命令提示”窗口中输入python,回车。这时会显示不是可用的命令。

怎样静态编译Qt程序

7、这是因为环境变量尚未设置,我们键入:set PATH=%PATH%;C:\Python34其中,C:\Python34是Python的安装目录(根据你自己的安装目录适当更改),注意%PATH%;和C:中间不能有空格。然后,再次键入python就会发现可用了。这时,我们按下Ctrl+Z再回车,退出来python。接着,进入解压后的Qt源码目录。

怎样静态编译Qt程序

8、下面,将执行关键的几个命令,请大家一定要仔细核对,以免费了老大力气而没有成功。重点的地方我会用粗体标示出来。1)执行configure输入:configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix “D:\Qt\5.5.1-static-vs2013” -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit其中“D:\Qt\5.5.1-static-vs2013”为编译完后的安装目录,此目录不需要事先存在。这个执行不用花多长时间,下图是执行完毕后的样子。

怎样静态编译Qt程序

9、2)接下来,输入nmake回车。这个执行的时间相当长,估计3个小时左右。所以,没有足够的时间时切勿轻易执行。3)nmake执行完毕之后,再输入nmake install安装。这个安装实际上是一连串的文件复制。至此,Qt静态库的编译就大功告成了。

五、设置静态编译

1、打开QtCreator,点击菜单“工具”-“选项”,再选择“构建和运行”-“Qt Versions”-“添加”,将刚才静态库目录下的bin\qamke.exe加进来。

怎样静态编译Qt程序

2、经过以上步骤,我们在编译Qt程序时就能选择静态编译了。

  • 电脑中怎么删除用户的变量?
  • Win10如何设置默认网关 怎么查看网关
  • Ubuntu键盘图标不见了
  • Windows电脑如何开启防火墙
  • 易语言写链接ftp服务器
  • 热门搜索
    手抄报读书伴我成长 手抄报版面花边大全 关于文明出行的手抄报 读书节的手抄报 愚人节手抄报 有关食品安全的手抄报 讲卫生手抄报内容 关于文明的手抄报内容 读书小报手抄报图片 六年级英语手抄报