怎样静态编译Qt程序
在默认情况下,我们用QtCreator编译程序时,使用的是动态编译。也就是说,编译好的程序在运行时需要另外加上相应的Qt库文围泠惶底件,否则就会出错。如果你想将生成的程序连同所需要的库一起完整地打包成一个可执行程序,那就需要使用静态编译。那么,怎样在Windows下静态编译Qt程序呢?
工具/原料
Qt源码包
一、问题描述
1、当我们使用动态编译的方法编译生成Qt程序时,即使是采用release方式编译,也需要同时提供相应的Qt库才能正常运行。否则,就会报错,提示缺少Qt库。

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

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

四、编译静态库
1、现在,进入解压后的Qt源码文件夹下的qtbase\mkspecs 文件夹下。

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

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

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

8、下面,将执行关键的几个命筠沭鱿漆令,请大家一定要仔细核对,以免费了老大力气而没有成功。重点的地方我会用粗体标示出来。1)执行configure输入:configure -conf足毂忍珩irm-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”为编译完后的安装目录,此目录不需要事先存在。这个执行不用花多长时间,下图是执行完毕后的样子。

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