VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(好像很不错,有六张插图说明)good
为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半。
好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁。然后我们要到QT主页下载,QT4.7.4版的源码包 qt-everywhere-opensource-src-4.7.4.zip,因为用源码包编译没那么容易出错;另外还有QT for VS 的插件 qt-vs-addin-1.1.9.exe,这两个准备好就可以开始安装了。
第一步:
把源码包qt-everywhere-opensource-src-4.7.4.zip解压到D盘,把目录名字qt-everywhere-opensource-src-4.7.4改为Qt,然后进入D:\Qt\mkspecs\win32-msvc2008 目录(如果是2010就进入win32-msvc2010目录),修改qmake.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
说明:D 就是Dynamic 动态;T 就是 Static 静态的意思,只有修改这个才能把Qt库编译成静态。
第二步:设置环境变量
在PATH环境变量中添加:”D:\Qt\″
添加新的环境变量,名字为”QMAKESPEC”,值为”win32-msvc2008″(如果是2010就修改为“win32-msvc2010”)
添加新的环境变量,名字为”QTDIR”,值为”D:\Qt\″
最好重启下系统令环境变量生效。
第三步:生成Qt编译配置
首先打开VS2008命令行提示符,进入D:\Qt 目录
命令如下:
d: (回车)
cd d:\Qt (回车)
configure -platformwin32-msvc2008 -debug-and-release -opensource -static -fast -qt-sql-sqlite-plugin-sql-sqlite -no-qt3support -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg-no-webkit -qt-style-windowsxp -qt-style-windowsvista -nomake examples -nomakedocs -nomake demos (回车)
提示是否继续,选择 y
等待十来二十分钟就完成编译配置的生成。
然后输入命令: nmake
开始编译Qt静态库。大概一两个小时吧,视机器配置而定,就能够编译完成了。接下来是很关键的一点,这个关系到LINK4099错误的问题,很多人都在静态编译之后,输入nmake clean 命令,这个命令坚决不能执行,否则就会删除VC90.pdb等的文件,导致LINK4099错误,切记,我是来回编译了好几次才发现这个问题出现的原因,就是清理了编译过程生成的中间文件,网上的解决办法完全不行。
第四步:安装qt-vs-addin-1.1.9.exe Qt for VS插件以及配置VS2008(2010也可以,都差不多)
这里要说一下的就是设置VS2008里面的编译器和库文件目录,以及智能感知目录如果你使用VAssisX来进行智能感知输入的话。
打开VS2008,点“工具”菜单,“选项”,“项目和解决方案”,“VC++目录”右边“显示以下内容的目录”:
(1)可执行文件:添加“$(QTDIR)\bin”,如图

(2)包含文件:添加"$(QTDIR)\include",如图

(3)库文件:添加“$(QTDIR)\lib”

VAssisX 配置两个地方,如下两图


到这里整个开发环境就安装配置完成了,重启VS2008就可以正常使用了。最后要提醒的就是,你在VS创建的QT项目,记得把项目属性中的“代码生成”中的“运行库”改成“多线程调试(/MTd)”或者“多线程(/MT)”,因为QT已经编译成静态库了。还有,记得不要使用 nmake clean 命令,否则出现了 LINK4099 错误,找不到“VC90.pdb”可别怪我没提醒你啊:)
(下图是修改运行库为静态)

(下图为编译0警告0错误)

VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(好像很不错,有六张插图说明)good的更多相关文章
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(很不错,有六张插图说明,修改qmake.conf里的MD参数等)good
为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半. 好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁.然 ...
- 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
[点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...
- Qt 5.6.2 静态编译(VS2013 x86 target xp openssl icu webkit)
在去年4月份的时候,我写过一篇动态编译Qt5.6.0的文章,当时是为了解决webkit不能在winxp下面跑的问题,动态编译有一个缺点,就是发布的时候,要携带一大堆dll,使安装包的体积增大.而静态编 ...
- 在windows环境中单机搭建rabbitmq集群
建议单机版集群仅作为学习使用,生产环境最好使用多服务器集群来避免单点故障带来的服务不可用,必竟单机版的集是伪集群. 1:准备基础文件.环境变量 设置环境变量: 变量名:RABBITMQ_BASE 变量 ...
- Qt 4.6.2静态编译
一.下载mingw 4.4.0:ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip 二.解压到C:\mingw目录下,设置环境变量path将C:\mingw ...
- Hello World程序演示Qt项目的建立、编译、运行和发布
一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...
- Qt实现小功能之列表无限加载(创意很不错:监听滚动条事件,到底部的时候再new QListWidgetItem)
概念介绍 无限加载与瀑布流的结合在Web前端开发中的效果非常新颖,对于网页内容具备较好的表现形式.无限加载并没有一次性将内容全部加载进来,而是通过监听滚动条事件来刷新内容的.当用户往下拖动滚动条或使用 ...
- Qt 4.6.2静态编译后,创建工程出现中文乱码的解决办法
一.如果静态编译是用mingw编译的 1)在pro文件里增加QTPLUGIN += qcncodecs 2)在main函数所在的文件里面增加#include <QtPlugin>和Q_IM ...
- Qt最新版5.12.2在Win10环境静态编译安装和部署的完整过程(VS2017)
一.为什么要静态编译 用QtCreator编译程序时,使用的是动态编译.编译好的程序在运行时需要另外加上相应的Qt库文件,一大堆dll文件.如果想将生成的程序连同所需要的库一起完整地打包成一个可执行程 ...
随机推荐
- 基于visual Studio2013解决C语言竞赛题之1007找数
题目 解决代码及点评 /************************************************************************/ ...
- java list三种遍历方法性能比较
从c/c++语言转向java开发,学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象 ...
- poll系统调用的内核态实现机制分析
版权所有,转载请标明出处 All right reserved,Copyright by 徐行而至 浅唱而归 前面已经比较详尽的分析了系统调用引发的内核执行过程,本文将继续分析一下linux2.6 ...
- [Android系列—] 1. Android 开发环境搭建与Hello World
前言 開始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,相同对于And ...
- Android TextView自己主动换行文字排版參差不齐的原因
今天项目没什么进展,公司后台出问题了.看了下刚刚学习Android时的笔记,发现TextView会自己主动换行,并且排版文字參差不齐.查了下资料,总结原因例如以下: 1.半角字符与全角字符混乱所致:这 ...
- 分布式消息系统jafka快速起步(转)
Jafka 是一个开源的/性能良好的分布式消息系统.在上一篇文章中有所简单介绍.下面是一篇简单的入门文档.更多详细的文档参考wiki. Step 1: 下载最新的安装包 完整的安装指南在这里.最新的发 ...
- 动态绑定Gridview带模板列
公司要做一个可以支持4种数据库(<!--数据库类型 (DLL专用) (SQL SERVER) (ORACLE) (ACCESS)(POSTGRE SQL)-->)的并且字段随表字段变化的可 ...
- ul不加宽高
ul可以不加宽高,但是不能用margin(上下左右), 可以用margin(左右),否则里面的内容如果是要左右浮动的话,就会掉下来
- Gitolite v3安装配置指南
使用gitolite对git仓储进行权限配置 gitolite在近期做了很多代码改动,升级到了v3版本,而我使用的是v3.5.2.在<Git权威指南>中所提及的是v2版本,有很多东西已经不 ...
- MySQL 暂时文件夹
MySQL数据文件夹/data/mysql所在的上层文件夹/data磁盘空间不足导致MySQL启动失败,所以清理了/data文件夹下除了mysql子文件夹外的其它无用文件夹.重新启动发现还是失败.检查 ...