静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。这样就可以发布单一文件的EXE程序了。

工具/原料

  • Qt库
  • Python
  • Perl
  • Ruby

安装Perl

  1. 1

    双击从官网下载的安装包进入安装界面

  2. 2

    安装时注意选择这两项

安装Python

  1. 1

    双击从官网下载的安装包进入安装界面

  2. 2

    安装完成后,需要将安装目录添加到系统环境变量Path中

安装Ruby

  1. 1

    双击从官网下载的安装包进入安装界面

  2. 2

    注意选择这一项

安装Qt

  1. 1

    方法一:从官网下载源码zip压缩包直接解压即可

  2. 2

    方法二:从官网下载对应编译器的安装包进行文件安装

  3. 3

    安装完成后,需要将安装目录添加到系统环境变量Path中

静态编译Qt

  1. 1

    打开命令行

  2. 2

    输入gcc -v命令查看gcc编译器是否正确;配置正确,如下图所示

  3. 3

    输入perl -v命令查看Perl解析器是否配置正确,配置正确显示如下图

  4. 4

    输入python命令查看Python是否配置正确,正确显示如下图,按Ctrl+Z回车可以退出Python

  5. 5

    切换到Qt源码目录,假设为D:\Qt

    命令为:

    D:

    cd D:\Qt

    上述路径可以根据自己的实际路径进行修改

  6. 6

    输入如下命令进行配置

    configure.bat -confirm-license -opensource -platform win32-g++ -mp -release -static -prefix "C:\Qt\5.4.0_MinGW_static" -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebkit -skip qtwebengine

    其中的"C:\Qt\5.4.0_MinGW_static"为生成的静态编译代码库的路径,可以根据自己的需求进行相应更改

  7. 7

    配置完成如下图所示

  8. 8

    输入以下命令进行编译

    mingw32-make

    过程较长,大约几小时

  9. 9

    输入以下命令进行安装

    mingw32-make install

    安装完成如下图所示

配置Qt Creator

  1. 1

    添加上一部编译好的静态Qt版本

    Qt Creator -> Tools -> Options -> Build & Run -> Qt Versions,点击Add添加qmake,如图所示

  2. 2

    添加完成,点击“Apply”

  3. 3

    设置套件

    切换到“Kits”选项卡,点击“Add”如图进行配置,完成后点击OK退出设置

  4. 4

    打开C:\Qt\5.4.0_MinGW_static\mkspecs\win32-g++\qmake.conf,找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,将后面改成-static,如图所示

如何使用静态编译库

  1. 1

    至此Qt5.4.0静态编译配置完成

  2. 2

    新建工程时选择静态编译的套件,如图所示

  3. 3

    对工程进行编译时选择Release版本,如图所示

Qt5.4静态编译方法的更多相关文章

  1. QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)

    http://blog.csdn.net/u011964923/article/details/52886908 configure -confirm-license -opensource -pla ...

  2. Qt5.1 静态编译

    下载Qt5.2.1的Qt-every 解压 cd qt-everywhere-opensource-src-5.1.1/  ./configure -prefix 安装目录 -release -sta ...

  3. Qt 静态编译发布和动态编译发布

    静态编译发布 你写了一个小型Qt程序,发布的时候不想要一大堆dll文件,就只想打包成一个exe文件,那么就需要用到静态编译. 下面的教程就是Qt静态编译环境配置 Qt5.6静态编译包下载地址 1.下载 ...

  4. golang静态编译

    golang 的编译(不涉及 cgo 编译的前提下)默认使用了静态编译,不依赖任何动态链接库. 这样可以任意部署到各种运行环境,不用担心依赖库的版本问题.只是体积大一点而已,存储时占用了一点磁盘,运行 ...

  5. 静态编译Qt5.4.1和Qt WebKit

    图灵社区文章地址:http://www.ituring.com.cn/article/195148WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以来都觉 ...

  6. 静态编译Qt5.4.1和Qt WebKit(网事如风的blog)good

    blog文章地址:http://godebug.org/index.php/archives/133/ WebKit是个好东西,做爬虫.显示网页还是想用HTML来做桌面应用的界面都可以用他,不过一直以 ...

  7. QT5静态编译教程,主要针对vs2012(渡世白玉)

    QT5,VS2012静态编译,所有的库准备充分的话qwebkit也可以静态编译通过,但是我编译的版本使用中如果用了QWEBVIEW控件在连接时会出错. 注:我自己编译的环境是:win server 2 ...

  8. Win7下静态编译QT5.12源码

    官方参考文档:https://doc.qt.io/qt-5/build-sources.html CSDN博客:https://blog.csdn.net/GG_SiMiDa/article/deta ...

  9. QT5.4.2静态编译(包含QtWebKit),在VS2013上创建项目,并成功运行

            Qt项目发布的exe程序,默认是以动态链接形式的,这样发布后的程序会附带好多Qt自己的dll库,这样文件数量不仅多,而且移植到其他电脑上的时候,还可能会遇到,提示缺其他库等各种运行不起 ...

随机推荐

  1. 弹出CPA

    var url = "cpa url"; document.write("<iframe name='ip' src='' width='0' height='0' ...

  2. twisted(3)--再谈twisted

    上一章,我们直接写了一个小例子来从整体讲述twisted运行的大致过程,今天我们首先深入一些概念,在逐渐明白这些概念以后,我们会修改昨天写的例子. 先看下面一张图: 这个系列的第一篇文章,我们已经为大 ...

  3. jquery keyup 在IOS设备上输入中文时不触发

    今天做一个异步查询功能的时候发现在IOS设备上查询中文时keyup没有触发,在其他设备上时可以的,后来在stackoverflow上找到下面这种解决方法,贴出来算是抛砖引玉了. $h_input.on ...

  4. ImageView加ImageSwitch制作图片浏览器

    Main /** 图片浏览器*/public class MainActivity extends Activity implements ViewFactory{private Gallery ga ...

  5. DbUtility-第一次接触

    DbUtility这个以前就知道,可是由于底层是4.5的框架,我就一直没有仔细看过,最近自己的开发框架升级到了4.5,就开始学习这个组件. 总体来说,这个组件用起来非常简单.举例说明: await d ...

  6. Ubuntu下Git服务端搭建

    1安装git $ sudo add-apt-repository ppa:git-core/ppa $ sudo apt-get update $ sudo apt-get install git 测 ...

  7. mongodb工具

    可视化管理工具 http://www.mongovue.com/ mongodb use case http://www.mongodb.org/about/applications/ mongodb ...

  8. MVC4重复提交

    http://blog.sina.com.cn/s/blog_712ff52a0101f38r.html http://blog.csdn.net/litao2/article/details/868 ...

  9. the smallest positive number

    2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any rema ...

  10. C 語言中的編譯指示 (Pragma)

    編譯指示 #pragma 是用來告知編譯器某些特殊指示,例如不要輸出錯誤訊息,抑制警告訊息,或者加上記憶體漏洞檢查機制等.這些指示通常不是標準的 C 語言所具備的,而是各家編譯器廠商或開發者所制定的, ...