VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
来源:互联网 发布:网络管理小结 编辑:程序博客网 时间:2024/06/07 06:42
为什么要在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\″
最好重启下系统令环境变量生效。
首先打开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 静态编译的调试与发布
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
- Qt 4.7.4 完美动态编译发布动态调试,以及静态编译发布
- VS2008纯静态编译QT4.8.0,实现VS2008编译调试Qt程序,QtCreator静态发布程序
- qt嵌入vs2008中静态编译的程序发布后乱码
- Qt 4.7.2之VS2008集成环境搭建 与Qt工程编译
- Qt应用程序的静态编译与发布
- Qt 4.8.2 VS2008 集成环境搭建过程中编译错误的解决办法
- VS2008与QT联合编程环境搭建
- VS2008与QT联合编程环境搭建
- 搭建自己的qt静态编译环境0
- QT+VS2008环境搭建
- Qt 4.6.2在VS2005,VS2008,MinGW环境下的静态编译
- Qt 4.6.2在VS2005,VS2008,MinGW环境下的静态编译
- useful command
- 修改网页超链接的默认行为 <a> _blank _self _parent
- java程序设计与问题解决(基础篇)-读书笔记-3
- action="#{languageFrom.showChoice}": Target Unreachable, identifier 'languageFrom' resolved to null
- Oracle Union
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
- 通用寄存器的作用
- 32位环境下的16汇编程序设计
- 妈妈告诉将要出嫁的女儿,爸爸告诉将要结婚的儿子!
- wireshark 抓包的问题
- Android学习笔记<一> 简介
- Java Oracle JDBC 超出打开游标的最大数异常
- ARM寄存器
- win7安装Oracle错误:要求的结果: 5.0,5.1,5.2,6.0 之一 实际结果: 6.1