谁愿意写个程式出来之后还附带一堆DLL,尤其是名字如此明显的名字。

于是在网上看了看,是需要下载源代码然后进行编译的,但是看了看别人说的编译时间,长达几个小时,瞬间就感觉不想做了。因为我还需要抓紧时间code。

于是利用某某搜索引擎找了个 Qt 5.1 已经静态编译完毕之后的包。在文章的最后会提供下载地址,我们为了节约可贵的时间,我们之间使用别人已经编译好的包来进行静态编译。

首先我们下载Qt 5.1(下载地址在文章的最后)

然后我是直接放在 C盘下的

打开Qt Creator -> Tools -> Options..

然后我们加入 刚刚下载的Qt 版本

点击Add  (无视我这里面已经有的)

于是我们选择 Qt/5.1.0-rel-static/bin/qmake.exe

可以看见已经添加了

(至于名字什么的随便乱取就是了 %{Qt:Version} 是一个变量)

然后我们点击 Kits 选项夹

新建一个Kit,注意自己看截图,至于编译器的话你在安装Qt的时候 应该会有一个选项可以让你下载的,没有的话就只能你自己去下载了

然后我们新建一个项目:

有一个选项即可。选择你刚刚建立的Kit

然后你的程序如果写好了的话,就可以单击“编译”来进行静态编译了;

注意模式要选择 Release 模式

至此,我相信你已经可以生成一个体积应该蛮大的EXE程序,带着你的Qt程序到处运行吧。

经过我的测试,Windows 7 32位/64位  WIndows 10 64位/32位 Windows Xp 32位  Windows 2003 32位 都可以正常运行。

生成的文件体积会有点大,内存占用略高,但是的确是制作 C++ 界面的一个好框架。不过值得一提的是,我用Qt 制作过一个 控制台程序,程序配置删除了 界面库:

pro 项目配置文件:

 QT += core    #加入核心库
QT -= gui #删除界面库
QT += network #加入网络库
CONFIG += c++11 #C++11 标准 TARGET = Suwings
CONFIG += console #添加控制台
CONFIG -= app_bundle TEMPLATE = app RC_FILE = suwings.rc

项目文件有26个文件,代码总计约3000行,生成出来的文件貌似是:

4MB左右,尤其是程序在运行的时候,内存占用在 0.9MB~1.5MB 之间;

所以我觉得如果要是将界面库给去掉,说不定是比不错的收益。

不过如果你连界面都不要了,那你用Qt是干什么的呢?不过确实Qt已经给我们提供了一套几乎完整的框架,让我找到一种在写Java的感觉。

Qt 已编译包下载地址:http://pan.baidu.com/s/1eSnys1s

下面推荐几个链接:

Qt 下载:https://www.qt.io/download/

Qt 自学之路:https://www.devbean.net/category/qt-study-road-2/page/10/

Qt 官方文档:http://doc.qt.io/qt-5/qtgui-module.html

Qt 中文文档(有点老):http://www.kuqin.com/qtdocument/index.html

感谢你的耐心阅读,希望对你有帮助。

C++ Qt 框架静态编译 操作记录的更多相关文章

  1. 记录下 QT Linux 静态编译遇到的坑

    Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-open ...

  2. 3.Qt GUI中一些操作记录

    一.如何在Widget中利用代码添加背景图片 this->setAutoFillBackground(true); // QPalette palette = this->palette( ...

  3. QT静态编译

    Qt静态编译(链接)和动态编译区别 Qt的静态编译译(其实应该叫链接,不是编译),将各模块编译成静态库,这样在编译自己写的Qt程序时,会将这些静态库编译(链接)到你的EXE文件中去的.Qt的动态编译, ...

  4. Linux下快速静态编译Qt以及Qt动态/静态版本共存

    Qt下静态编译Qt,根据我的经验,如果按照Windows下那种直接拿官方sdk安装之后的文件来编译是行不通的,需要直接下载Qt的source包,目前诺基亚的源码叫做qt-everywhere-open ...

  5. Linux下快速静态编译Qt以及Qt动态/静态版本共存(提供了编译4.6,5.6的精通编译脚本,并且apt-get install 需要的库也全列出来了。还有分析问题的心理过程)good

    qt4.6 Linux./configure -static -release -confirm-license -opensource -qt-zlib -qt-libpng -qt-libjpeg ...

  6. Ubuntu下Qt-4.7.1的静态编译

    最近在学习Qt的静态编译,相比较来说windows的Qt静态编译比较容易,相反对于linux编译网上的文章实践下来都有这样那样的错误,这里简要小结一下自己的编译成果. 一.实验环境 1.Ubuntu  ...

  7. Ubuntu14.04 静态编译安装Qt4.8.6

    ./configure -static -nomake demos -nomake examples -nomake tools -no-exceptions -prefix /usr/local/Q ...

  8. vs2010静态编译qt5.1.0

    本博文参考 http://blog.chinaunix.net/uid-20690340-id-3802197.html 静态库在链接的时候直接写入二进制文件里,这样的好处在于发布的时候无需附带dll ...

  9. QT全平台设置图标,全平台静态编译 good

    1.  概述 当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行.编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装 ...

随机推荐

  1. MMS关键指标意义&各数值区间意义

    MMS关键指标意义&各数值区间意义 What's MMS MongoDB Management Service (MMS) is a suite of services for managin ...

  2. mysql主从复制原理

    复制如何工作 整体上来说,复制有3个步骤: (1)    master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events):       ...

  3. wordpress使用技巧

    1.iis6下wordpress去掉index.php 1)安装ISAPIRewritev3.1.0.73 http://bbs.z.admin5.com/forum.php?mod=viewthre ...

  4. VC中使用ATL库实现正则表达式匹配(ADODB::Error)

    1. 确保项目属性中ATL使用处于打开状态. 如VS中项目属性常规—ATL使用—静态链接到ATL 2. 在使用时加上头文件 #include "atlrx.h" 3. 使用示例代码 ...

  5. WIN8 下Cisco VPN连接 出现vpn 422 failed to enable virtual adapter错误

    今天在家用VPN软件连接,出现了“vpn 422 failed to enable virtual adapter”的错误,系统安装的是Win8专业版32位,百度了半天又很多方法解决不了,后来发现了一 ...

  6. 使用 Windows10 自定义交互消息通知

    消息通知是最常用的应用功能之一了,但是由于平台的差异,IOS Android 以及 Windows 都有其特殊性,Android开发者在国内常常都是使用三方的一些推送服务,或者是使用自建的服务器为应用 ...

  7. IOS8Preview-Huge for developer and Massive for everyone else

    IOS8Preview-Huge for developer and Massive for everyone else 不管对于开发者还是用户来说,IOS8都是IOS自发布以来功能最强大的版本,但是 ...

  8. spring 启动流程

    AbstractApplicationContext 分析 启动流程 // Prepare this context for refreshing.prepareRefresh(); 1. // In ...

  9. C++:不同类型的指针的本质与差异

    转自:http://blog.csdn.net/richerg85/article/details/10076365 指针的类型(The Type of a Pointer)            一 ...

  10. Golang控制goroutine的启动与关闭

    最近在用golang做项目的时候,使用到了goroutine.在golang中启动协程非常方便,只需要加一个go关键字: go myfunc(){ //do something }() 但是对于一些长 ...