Qt第二天——静态版本编译
上篇介绍了QT开发的基本知识——环境搭建,相信大家已经最qt开发有所了解,但是不管是msvc、mingw,都是使用qt的相关动态库进行编译的,因此,我们做出来的应用程序若是换到一台没有安装过qt开发环境的机器上,将会提示缺少qt相关的动态库而无法正常运行,除非你再把需要用到的库也搬过来,但这样显然很麻烦,有没有什么办法可以解决这个问题?今天我们就来介绍下静态编译qt应用程序的准备工作。
总的来说有两部分工作要做:
第一步:利用Qt源码来编译出Qt的静态库。
第二步:在Qt Creator中设置编译选项。
我们先说第一步,其实这个编译的过程一点也不复杂,大家不要先有畏惧心理,遇到问题解决问题就行了,跟写代码是一样一样的。
-
下载源码,地址在这http://download.qt.io/archive/qt/5.5/5.5.1/single/
任选一个压缩包,我选的是.zip格式的,解压即可(路径中不要包含空格,这是我遇到的问题,编译的时候命令行不认识这个地址)
-
在解压目录下找到configure.exe所在的目录,将该目录(D:\qt-everywhere-opensource-src-5.5.1\qtbase)添加到环境变量的path里面。
-
我们vs2010的编译环境来编译,先到解压目录下找到D:\qt-everywhere-opensource-src-5.5.1\qtbase\mkspecs\common\ msvc-desktop.conf文件,将
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi –MDd
改为
QMAKE_CFLAGS_RELEASE = -O2-MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi –MTd
保存即可。
-
用vs2010命令行工具启动编译。
这里要说一下,我开始是直接打开vs2010,在“工具”-“visual studio 命令提示”的命令行编译的,但是一直提示我create nmake…Building qmake failed, return code 2,于是百度了,说是找不到vs的nmake编译器,于是到vs安装目录下(D:\ProgramFiles(x86)\VS\VC\bin),在文件路径里输入“cmd”,在弹出的命令行窗口中执行该目录下的vcvars32.bat脚本,如图所示:
接着再进入到D:\qt-everywhere-opensource-src-5.5.1\qtbase路径下,再输入以下命令:
configure-platform win32-msvc2010 -opengl desktop -debug-and-release -static-qt-sql-sqlite,回车键,这行命令是设置编译配置,需要等两三分钟,之后再输入” nmake” ,按回车键等待大约两个小时的编译过程就结束了。生成的静态库目录在D:\qt-everywhere-opensource-src-5.5.1\qtbase\lib下。
第一步成功之后,我们来所说第二步,就是让Qtcreator在生成应用程序的时候
调用静态库生成静态的发布程序。
-
在Qt creator中点击“工具”——“选项”,选择“构建和运行”——“QtVersion”——“添加”,将D:\qt-everywhere-opensource-src-5.5.1\qtbase\bin\qmake.exe加进来。
-
在“构建和运行”——“编译器”中确保有MSVC的选项就行。
-
在“构建和运行”——“构建套件”——‘’添加”
名称:Desktop—static
Qt版本:选择刚才在“Qt Version”中添加的静态库版本
编译器:Microsoft visual C++Compiler 10.0(x86)
-
以上,在QtCreator上的设置已经完成了,我们只需要在新建项目时,在“Kit Selection”中选择“Desktop—static”这个编译套件即可。
到此为止,我们想要生成静态版本的应用程序的工作已经讲解完了,大家要是实施的时候遇到什么问题就给我留言,我会尽快回复。