Qt第二天——静态版本编译



上篇介绍了QT开发的基本知识——环境搭建,相信大家已经最qt开发有所了解,但是不管是msvcmingw,都是使用qt的相关动态库进行编译的,因此,我们做出来的应用程序若是换到一台没有安装过qt开发环境的机器上,将会提示缺少qt相关的动态库而无法正常运行,除非你再把需要用到的库也搬过来,但这样显然很麻烦,有没有什么办法可以解决这个问题?今天我们就来介绍下静态编译qt应用程序的准备工作。

 

总的来说有两部分工作要做:

第一步:利用Qt源码来编译出Qt的静态库。

第二步:在Qt Creator中设置编译选项。

 

我们先说第一步,其实这个编译的过程一点也不复杂,大家不要先有畏惧心理,遇到问题解决问题就行了,跟写代码是一样一样的。

  1. 下载源码,地址在这http://download.qt.io/archive/qt/5.5/5.5.1/single/

    任选一个压缩包,我选的是.zip格式的,解压即可(路径中不要包含空格,这是我遇到的问题,编译的时候命令行不认识这个地址)

  2. 在解压目录下找到configure.exe所在的目录,将该目录(D:\qt-everywhere-opensource-src-5.5.1\qtbase)添加到环境变量的path里面。

  3. 我们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

保存即可。

  1. vs2010命令行工具启动编译。

    这里要说一下,我开始是直接打开vs2010,在工具”-“visual studio 命令提示的命令行编译的,但是一直提示我create nmake…Building qmake failed, return code 2,于是百度了,说是找不到vsnmake编译器,于是到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在生成应用程序的时候

调用静态库生成静态的发布程序。

  1. Qt creator中点击工具”——“选项,选择构建和运行”——“QtVersion”——“添加,将D:\qt-everywhere-opensource-src-5.5.1\qtbase\bin\qmake.exe加进来。

  2. 构建和运行”——“编译器中确保有MSVC的选项就行。

  3. 构建和运行”——“构建套件——‘’添加

    名称:Desktop—static

    Qt版本:选择刚才在“Qt Version”中添加的静态库版本

    编译器:Microsoft visual C++Compiler 10.0(x86)

  4. 以上,在QtCreator上的设置已经完成了,我们只需要在新建项目时,在“Kit Selection”中选择“Desktop—static”这个编译套件即可。

     

    到此为止,我们想要生成静态版本的应用程序的工作已经讲解完了,大家要是实施的时候遇到什么问题就给我留言,我会尽快回复。

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章