VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布


   
[size=18px;]为什么要在VS2008中使用QT静态编译呢?很简单,因为VS2008编译器编译出来的文件比mingw编译的要几乎小一半。[/size]

[size=18px;]<span style="white-space: pre;">[/size]好了现在我们来做些准备工作,VS2008自然要安装的,然后打上SP1的补丁。然后我们要到QT主页下载,QT4.7.4版的源码包<span style="font-family: Verdana,Arial,Helvetica,'Lucida Grande',Lucida,sans-serif;"><span style="line-height: 18px;"> qt-everywhere-opensource-src-4.7.4.zip</span></span>,因为用源码包编译没那么容易出错;另外还有QT
for VS 的插件 qt-vs-addin-1.1.9.exe,这两个准备好就可以开始安装了。<span style="color: rgb(68,68,68); font-family: Verdana,Arial,Helvetica,'Lucida Grande',Lucida,sans-serif; line-height: 24px;"><span style="color: rgb(68,165,28);"><span style="background-color: transparent; display: block!important;"><u></u></span></span></span></span>

[size=18px;]第一步:[/size]

[size=18px;]<span style="white-space: pre;">[/size]把源码包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文件,把下面三行红色部分</span>

[size=18px;]QMAKE_CFLAGS_RELEASE  = -O2 -<span style="color: rgb(255,0,0);">MD[/size]<br>
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -<span style="color: rgb(255,0,0);">MD</span>-Zi<br>
QMAKE_CFLAGS_DEBUG   = -Zi -<span style="color: rgb(255,0,0);">MDd</span><br></span>

[size=18px;]修改后:[/size]

[size=18px;]QMAKE_CFLAGS_RELEASE  = -O2 -<span style="color: rgb(51,51,255);">MT[/size]<br>
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -<span style="color: rgb(51,51,255);">MT</span>-Zi<br>
QMAKE_CFLAGS_DEBUG   = -Zi -<span style="color: rgb(51,51,255);">MTd</span><br></span>

[size=18px;]说明:D 就是D<span style="line-height: normal; color: rgb(0,0,0);"> ynamic 动态;T 就是 Static 静态的意思,只有修改这个才能把Qt库编译成静态。[/size]</span>

[size=18px;]<span style="line-height: normal; color: rgb(0,0,0);"> <br>[/size]</span>

[size=18px;]<span style="line-height: normal; color: rgb(0,0,0);"> 第二步:设置环境变量[/size]</span>

[size=18px;]<span style="line-height: normal; color: rgb(0,0,0);"> </strong>[/size]</span>

在PATH环境变量中添加:”D:\Qt\″

添加新的环境变量,名字为”QMAKESPEC”,值为”win32-msvc2008″(如果是2010就修改为“win32-msvc2010”)

添加新的环境变量,名字为”QTDIR”,值为”D:\Qt\″

最好重启下系统令环境变量生效。
<span style="color: rgb(51,51,51); font-family: Arial; font-size: 15px; line-height: 26px; text-align: left;"></span>

[b]<br>

<span style="color: rgb(51,51,51); font-family: Arial; font-size: 15px; line-height: 26px;">第三步:生成Qt编译配置</span><span style="font-family: Arial; font-size: 15px; text-align: left;"> <br></span>

[size=18px;]<span style="white-space: pre;">[/size]首先打开VS2008命令行提示符,进入D:\Qt 目录</span>

[size=18px;]命令如下:[/size]

[size=18px;]d: (回车)[/size]

[size=18px;]cd d:\Qt (回车)[/size]

[size=18px;]<a name="OLE_LINK3" style="color: rgb(51,102,153); text-decoration: none;"></a><a name="OLE_LINK2" style="color: rgb(51,102,153); text-decoration: none;"></a><a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">configure
-platform[b]win32-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 (回车)</a>[/size][/b]

<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]提示是否继续,选择 y[/size]</a>

<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]等待十来二十分钟就完成编译配置的生成。[/size]</a>

[size=18px;]然后输入命令: nmake  [/size]

[size=18px;]开始编译Qt静态库。大概一两个小时吧,视机器配置而定,就能够编译完成了。接下来是很关键的一点,这个关系到LINK4099错误的问题,很多人都在静态编译之后,输入<span style="color: rgb(255,0,0);">nmake clean[/size]命令,这个命令坚决不能执行,否则就会删除VC90.pdb等的文件,导致LINK4099错误,切记,我是来回编译了好几次才发现这个问题出现的原因,就是清理了编译过程生成的中间文件,网上的解决办法完全不行。</span>

<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]<br>[/size]</a>

<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]第四步:安装[/size]</a>qt-vs-addin-1.1.9.exeQt
for VS插件以及配置VS2008(2010也可以,都差不多)


<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]这里要说一下的就是设置VS2008里面的编译器和库文件目录,以及智能感知目录如果你使用VAssisX来进行智能感知输入的话。[/size]</a>

<a name="OLE_LINK1" style="color: rgb(51,102,153); text-decoration: none;">[size=18px;]打开VS2008,点“工具”菜单,“选项”,“项目和解决方案”,“VC++目录”右边“显示以下内容的目录”:[/size]</a>

[size=18px;] (1)可执行文件:添加“$(QTDIR)\bin”,如图[/size]

[size=18px;] <img src="http://hi.csdn.net/attachment/201111/19/0_13216774475smc.gif" alt=""><br>[/size]

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;">(2)包含文件:添加"$(QTDIR)\include",如图[/size]<br></span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><img src="http://hi.csdn.net/attachment/201111/19/0_1321677583RbE6.gif" alt=""><br>[/size]</span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;">(3)库文件:添加“$(QTDIR)\lib”[/size]<br></span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><img src="http://hi.csdn.net/attachment/201111/19/0_1321677617ZwKi.gif" alt=""><br>[/size]</span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;">VAssisX 配置两个地方,如下两图[/size]<br></span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><img src="http://hi.csdn.net/attachment/201111/19/0_1321677744G0P3.gif" alt=""><br>[/size]</span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><img src="http://hi.csdn.net/attachment/201111/19/0_1321677816TTkT.gif" alt=""><br>[/size]</span>

[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;">[/size]</span>

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

[size=18px;](下图是修改运行库为静态)[/size]
<img src="http://hi.csdn.net/attachment/201111/19/0_1321677844I7nR.gif" alt=""><br>
[size=18px;] <span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;">(下图为编译0警告0错误)[/size]<br></span></span>

[size=18px;]<strong><span style="color: rgb(51,51,51); font-family: Arial; font-size: 19px; line-height: 26px;"><img src="http://hi.csdn.net/attachment/201111/19/0_1321677856JvoQ.gif" alt=""><br>[/size][/b]</span>
 

你可能感兴趣的:(java,工作)