VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(很不错,有六张插图说明,修改qmake.conf里的MD参数等)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 静态编译的调试与发布(很不错,有六张插图说明,修改qmake.conf里的MD参数等)good的更多相关文章
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布(好像很不错,有六张插图说明)good
为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半. 好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁.然 ...
- 企业运维 | MySQL关系型数据库在Docker与Kubernetes容器环境中快速搭建部署主从实践
[点击 关注「 WeiyiGeek」公众号 ] 设为「️ 星标」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 ...
- Qt 4.6.2静态编译
一.下载mingw 4.4.0:ftp://ftp.trolltech.com/misc/MinGW-gcc440_1.zip 二.解压到C:\mingw目录下,设置环境变量path将C:\mingw ...
- Qt+VS编译器:默认库“library”与其他库的使用冲突;使用 /NODEFAULTLIB:library(我曾经碰到过,修改qmake.conf,但我修改的是VS的IDE配置)good
找到qt安装目录下的mkspecs文件夹,在里面找到你使用的对应版本编译器,打开qmake.conf.稍等: /MD:动态链接多线程库(msvcrt.lib).使用该选项时,需要用/NODEFAULT ...
- Qt项目里的源代码默认都是Unicode,原因大概是因为qmake.conf里的定义
MAKEFILE_GENERATOR = MINGWQMAKE_PLATFORM = win32 mingwCONFIG += debug_and_release debug_and_release_ ...
- Qt 5.6.2 静态编译(VS2013 x86 target xp openssl icu webkit)
在去年4月份的时候,我写过一篇动态编译Qt5.6.0的文章,当时是为了解决webkit不能在winxp下面跑的问题,动态编译有一个缺点,就是发布的时候,要携带一大堆dll,使安装包的体积增大.而静态编 ...
- 在windows环境中单机搭建rabbitmq集群
建议单机版集群仅作为学习使用,生产环境最好使用多服务器集群来避免单点故障带来的服务不可用,必竟单机版的集是伪集群. 1:准备基础文件.环境变量 设置环境变量: 变量名:RABBITMQ_BASE 变量 ...
- Hello World程序演示Qt项目的建立、编译、运行和发布
一.Qt项目的建立 1.选择项目模板. 选择"文件-->新建文件或工程",在选择模板页面选择Qt C++项目中的"Qt Gui应用"一项,然后单击&quo ...
- Qt 4.6.2静态编译后,创建工程出现中文乱码的解决办法
一.如果静态编译是用mingw编译的 1)在pro文件里增加QTPLUGIN += qcncodecs 2)在main函数所在的文件里面增加#include <QtPlugin>和Q_IM ...
随机推荐
- 【noip模拟】Fancy Signal Translate (暴力 + 哈希)
题目描述 FST是一名可怜的 OIer,他很强,但是经常 fst,所以 rating 一直低迷. 但是重点在于,他真的很强!他发明了一种奇特的加密方式,这种加密方式只有OIer才能破解. 这种加密方式 ...
- unix shell(壳)的简单实现
用户程序通过调用操作系统提供的系统调用(system call)API 来获得操作系统提供的各种服务.但使用 API 需要手动编写程序.对于不编程序.且需要与操作系统进行交互的用户,又如何使用操作系统 ...
- 【44.19%】【codeforces 727C】Guess the Array
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- PAT 1061 - 1064 题解
这四道题来自 13 年 08 月 30 的 PAT 测试. 代码量不大,思路也比较直接.不过第一题的处理逻辑不太清晰,需要好好把握.稍有不慎就掉进坑里了(很多人被这道 20'的题坑了一个多小时心慌意乱 ...
- TCP/IP之封装,分用,server模型
ios讨论群1群:135718460 1.封装 当应用程序用TCP传送数据时,数据被送入到协议栈中,然后通过每一层直到被当做一串比特流送入网络. 2.分用 当目的主机收到以太网数据帧时,数据就開始从协 ...
- STL之适配器
一,STL适配器简介 1.什么是适配器 STL提供了序列式容器,同时针对序列式容器提供了应用于不同场景的容器适配器,通俗讲适配器就是以序列式容器为底层数据结构,进一步封装了的为适应场景应用的容器.ST ...
- CSS(网页样式语言)基础
所谓全栈,个体可以独立地完成系统的设计.开发.测试.部署以及运维.打通一个领域从无到有的全过程. 为什么会有 markdown 文本编辑显示工具呢,因为 html 太重了.markdown 是 htm ...
- 创建网站 并未网站指定ftp用户
这里有个视频 前10分钟可以参考 在windows server2008 r2上面安装iis 带ftp服务 :http://v.youku.com/v_show/id_XMjUyMTE1MTI0NA= ...
- 我的Spring之旅(二):为请求加入參数
1.前言 在上一篇我的Spring之旅(一)中,我们仅仅是利用不带參数的请求返回一个网页或一段json,在实际的B/S.C/S网络交互中,请求中须要自己定义的參数.本篇将简单地为之前的请求加入參数. ...
- 方阵的迹(trace)及其微分(导数)
trace 的一个十分重要的性质在于线性性, Tr(A+B)=Tr(A)+Tr(B)Tr(cA)=cTr(A) 1. 基本性质 Tr(A)=Tr(AT) Tr(AB)=Tr(BA) Tr(ABC)=T ...