QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)
http://blog.csdn.net/u011964923/article/details/52886908
configure -confirm-license -opensource -platform win32-msvc2015 -developer-build -shared -target xp -prefix "D:\Qt5.7.0-shared-win32-vs2015-xp" -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 qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -no-directwrite
为了解决的问题:QT动态编译得到的exe可执行文件,只能在本机运行。若直接复制到一台未安装QT的计算机上,肯定是无法运行的。
解决方法一:请参照我的另一篇博客QT程序 如何在未安装QT的电脑上运行,该方法仍然采用动态编译的方式,只是采用QT提供的windeployqt命令将可执行文件所需的动态链接库全给扒出来,然后放到可执行文件同一目录中,便可以拿到另外一台计算机上执行了。 缺点是:动态链接库太多,40MBit左右。
本文提供解决方法二:静态编译的方式:
本文假设您已成功安装 qt-opensource-windows-x86-msvc2013_64-5.7.0.exe 和 qt-vs-addin-1.25.exe(均可以在官网下载到)
【步骤1】在计算机上安装Python库和perl库(因为后续的静态编译需要用到这两种语言),可以在命令行敲击“python”和“perl -v”检查是否安装成功。
【步骤2】下载qt-everyshere-opensource-src-5.7.0-beta.zip 解压到 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta(按照自己习惯的路径解压)
【步骤3】打开 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta\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
即将MD改成MT,MDd改成MTd。动态改成静态
【步骤4】打开Visual Studio Tools中的 VS2013 开发人员命令提示,cd进入 C:\FreqUsed\Qt\qt-everywhere-opensource-src-5.7.0-beta
输入指令:
configure -confirm-license -opensource -platform win32-msvc2013 -debug-and-release -static -prefix "C:\FreqUsed\Qt\-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
configure -confirm-license -opensource -platform win32-msvc2015 -debug-and-release -static -prefix "D:\qt5-x86-static-vs2015" -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
回车等待1分钟左右
其中,"C:\FreqUsed\Qt\-static-vs2013"是我接下来把静态编译版本qt的安装目录
(这一步真是血淋淋的教训,我按照网上QT5.4.0的配置方法,区别为QT5.4.0配置代码最后有“-skip qtwebkit”。到了Qt5.7.0版本,这个qtwebkit早就被拿掉了,所以要去掉“-skip qtwebkit”。就因为这个,浪费了我一整天,时间就是金钱啊)
【步骤5】1分钟之后,命令行会提醒你nmake,那么我们键入nmake命令并回车,等待2至3个小时后,再输入nmake install,便可以发现"C:\FreqUsed\Qt\-static-vs2013"这个目录正在安装文件,等带10分钟后,安装完毕。
【Qt Creator下的配置】 在工具->选项中...添加QT Version和构建套件,然后建立工程即可。
【VS下Qt插件的配置】网上的配置方法太过复杂,且成功率很低。让我纠结了一个下午,突然灵光一现,下面是我的方法:
1、先利用Qt Creator建立一个static版本的工程,设计好界面之后,编译成功。
2、将静态编译debug或release文件夹下的 “工程名_plugin_import.cpp”,复制到工程的main文件同一目录下
3、用VS的QT5打开刚才建立的工程,qt setting设置为静态版本
4、编译成功
QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)的更多相关文章
- 使用 PyTorch Lightning 将深度学习管道速度提高 10 倍
前言 本文介绍了如何使用 PyTorch Lightning 构建高效且快速的深度学习管道,主要包括有为什么优化深度学习管道很重要.使用 PyTorch Lightning 加快实验周期的六种 ...
- 王家林 Spark公开课大讲坛第一期:Spark把云计算大数据速度提高100倍以上
王家林 Spark公开课大讲坛第一期:Spark把云计算大数据速度提高100倍以上 http://edu.51cto.com/lesson/id-30815.html Spark实战高手之路 系列书籍 ...
- iOS进阶--将项目的编译速度提高5倍
前言 作为开发团队的负责人,最近因为在快速迭代开发新功能,项目规模急速增长,单个端业务代码约23万行,私有库约6万行,第三方库代码约15万行,单个客户端的代码行数约60万.现在打包一次耗时需要11~1 ...
- 将Web应用性能提高十倍的10条建议
导读 提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于 ...
- 将 Web 应用性能提高十倍的10条建议
提高 web 应用的性能从来没有比现在更重要过.网络经济的比重一直在增长:全球经济超过 5% 的价值是在因特网上产生的(数据参见下面的资料).这个时刻在线的超连接世界意味着用户对其的期望值也处于历史上 ...
- Eclipse反编译工具Jad及插件JadClipse配置(转)
Eclipse反编译工具Jad及插件JadClipse配置 Jad是一个Java的一个反编译工具,是用命令行执行,和通常JDK自带的java,javac命令是一样的.不过因为是控制台运行,所以用起来不 ...
- Win7下安装VS2017、安装Qt5.10.1以及在VS2017添加qt插件
一.安装VS2017 1.下载VS2017 进入vs下载官网https://www.visualstudio.com/zh-hans/downloads/,选择所需要的vs版本,进行在线安装. 2.安 ...
- Qt5.4静态编译方法
静态编译,就是编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库.这样就可以发布单 ...
- vs2012+qt5.2.0环境搭建/vs2013 + qt5.3.2 环境搭建
分类: Windows Qt2014-01-17 00:50 15434人阅读 评论(18) 收藏 举报 此文章已作废,请参考我的新文章: vs2013 + qt5.3.2 环境搭建 ( http:/ ...
随机推荐
- JAVA SE回顾及思考(2)——数组的复制与动态扩展
我们知道在Java中数组是非基本类型既数组是对象(Object)的子类,所以用下面的这种方式是不能复制该对象的 public static void main(String[] args) { int ...
- nodebb中文社区
V2MM —— 自由职业者社区 https://v2mm.tech/ 萌梦社区 https://qtdream.com/ React Native 中文社区 http://bbs.reactnativ ...
- Android中的事件处理研究
处理用户界面事件Handling UI Events 在Android上,不止一个途径来侦听用户和应用程序之间交互的事件.对于用户界面里的事件,侦听方法就是从与用户交互的特定视图对象截获这些事件.视图 ...
- [UWP开发]NavigationView基础使用方法
原文:[UWP开发]NavigationView基础使用方法 [UWP开发]NavigationView基础使用方法 NavigationView是秋季创意者更新(16299)引入的新控件,用于生成W ...
- HDU1728 从迷宫中逃脱 【方向BFS】
从迷宫中逃脱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- IT该忍者神龟Oracle 树操作(select…start with…connect by…prior)
oracle树查询的最重要的就是select-start with-connect by-prior语法了.依托于该语法.我们能够将一个表形结构的以树的顺序列出来. 在以下列述了oracle中树型查询 ...
- STM32处理器AD难度整理
1.STM32的AD变化,任务组可以转换成两组:规则组和注射组.随机序列按随机顺序变换多种渠道构成了一组转换.例如.能够完成转换中,例如按照以下顺序:通道3.通道8.通道2.通道2.通道0.通道2.通 ...
- Full Stack developer and Fog Computing
尊重开发人员的劳动成果.转载请注明From郝萌主 http://blog.csdn.net/haomengzhu/article/details/40453769 看到这两组词,你是什么感觉? 不知所 ...
- spring boot 配置swagger UI
springboot集成swaggerUI 有这样的需求 1.在每个接口上都增加一个字段: 2.接口文档只展示满足一定条件URL的接口 配置文件 详细看代码 import org.springfram ...
- POJ 1986 Distance Queries LCA两点距离树
标题来源:POJ 1986 Distance Queries 意甲冠军:给你一棵树 q第二次查询 每次你问两个点之间的距离 思路:对于2点 u v dis(u,v) = dis(root,u) + d ...