【QT】 1. 建立QT编译环境

1. 什么是QT?

Qt是一个多平台的C++图形用户界面应用程序框架,它和Microsoft的MFC,以及Microsoft捐献给OpenSource的WTL类库一样,为应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用 程序的基础。Qt也是流行的Linux桌面环境KDE 的基础,KDE是所有主要的Linux发行版的一个标准组件。Qt支持下述平台:

[list]
[*]MS/Windows –从Windows 95之后的大部分Windows版本。
[*]Unix/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平台
[*]Macintosh – Mac OS X
[*]Embedded – 有帧缓冲(framebuffer)支持的Linux平台。
[/list]

2. 为什么学习QT?

长期以来困扰QT发展的是其授权问题,但是Nokia在发布QT 4.5版本的同时,第一次允许LPGL
授权,这意味着你可以用QT开发自有知识产权的商业闭源软件。因此QT成为Linux桌面应用开发的首选类库,同时也是Windows桌面应用开发的重要补充。关于QT与MFC,WTL的比较,详细另述。

3. 建立QT开发环境。

通常来说 ,QT的源代码可以不加修改的在各种平台上编译并且[b]可能[/b]效果一致,(事实上,错误在所难免),因此我个人倾向选择Windows平台,并用Visual studio或者免费的Visual studio Express作为QT的开发环境。

首先你至少要已经安装了visual studio或者visual studio Express,免费的Express版可以从这里[url=http://www.microsoft.com/express/vc/]下载[/url],它和Visutal studio有着一致的操作界面。安装之后,你同时也就安装了VC++ SDK。

编译QT Source需要用到MingW的头文件,MingW提供了一套Windows下的GNU的工具集,其中的W32api.h是我们需要头文件,MingW项目提供了方便的[url="http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer"]在线安装[/url],下载并运行MingW-5.16.exe,组件只需选择G++ compiler和MingW Make,所需的头文件将安装在“C:\MingW” 目录下。

[img]http://dl.iteye.com/upload/attachment/170182/a5831b6f-3042-34bd-8b36-f1b8eed6ffbb.png[/img]

Nokia提供了2个版本的QT下载,QT SDK和QT Source,推荐下载[url="http://qt.nokia.com/products"]QT Source[/url],这个包要小一些。QT source是个自解压的文件安装包,解压过程中会要求输入MinGW的路径,输入入"C:\MinGW",接着它会提示W32API.h的版本不对,直接忽略该提示,我个人习惯把QT解压到"C:\QT"。

4.6之后,QT的源文件以压缩包的方式提供,可以省略下MingW这些步骤了。

到此,编译QT的所有环境已经准备就绪了。

打开Visual Studio 2008的Commond prompt,(一般在Visual studio tools里头)接下来要运行一系列命令:

1. 在根目录下创建目标文件夹QT4 ( md qt4)
2. 切换到QT目录 (cd qt)
2. 将QT目录的mkspecs子目录拷贝到QT4里 (xcopy mkspecs /s c:\qt4\mkspecs)
4. 运行配置: configure -debug-and-release -prefix "C:\QT4"
5. 运行VC++的nmake命令
6. 安装nmake install

整个编译过程可能要持续10个小时,所以最好是在睡觉前执行编译命令!编译过程大概需要6G硬盘空间,请预留足够空间。6个步骤执行完之后,在QT4目录下就得到所需的QT发布版。你会发现许多名字类似的文件,其中有些带有"d"的为debug版。

如果你想节约磁盘空间,这时可以卸载掉QT source和MingW,并删除QT和MinGW目录。得到的QT发布版大概有400多M.

接着需要设置一下环境变量:

Set QTDIR=C:\QT4
Set PATH=%QTDIR%\bin;%PATH%

如图:

[img]http://dl.iteye.com/upload/attachment/170193/9c4cdf2c-6313-3ac4-9aa3-79dce53e0096.png[/img]


Nokia提供了一个Visual Studio的插件,目前版本是[url="http://qt.nokia.com/downloads/visual-studio-add-in"]1.1.1[/url],下载并安装。这个插件写得并不好,安装之后会有许多奇怪奇怪的问题:

1. Can not find a QT build之类的问题,通常是插件安装过程中,未正确更新注册表导致的。如果你的安装路径和我介绍的一致,则可以直接导入这个注册表来修复问题。否则需修改最后几行的安装路径。


2. 打开Visual studio的QT菜单中的QT option,报告无法取得QT版本的错误,解决方法是在C:\QT4的目录下创建一个空的文件叫“[b].qmake.cache[/b]”,注意文件是以"."开头的,该文件无需实际内容。


建立一个空白的QT项目并试着运行之。如果一切正确的话,你的Visual Studio应该看起来象这样:


[img]http://dl.iteye.com/upload/attachment/170275/301fcec9-004e-3fa6-8182-5d386a0e0d08.png[/img]

至此你已经完全建立QT的运行环境,可以从Visual studio的向导里创建你自己的QT项目了!


[b]创建项目中常见问题解决办法[/b]:

1. 在win 7上,VS2008在编译项目过程中可能出现:
error c101008d: Failed to write the updated manifest to the resource of file,
解决方法 <1> :在项目属性->manifest tools->input and output选项卡中embed manifest的值改成NO.
解决方法 <2> :下载VS 2008 SP1 大概800多M.


4.6.2编译错误

The errors appear in the following files (the two files are identical, and the errors need to be fixed in each):

%QTDIR%\qt\src\3rdparty\webkit\javascriptcore\runtime\StructureTransitionTable.h
%QTDIR%\qt\src\3rdparty\javascriptcore\JavaScriptCore\runtime\StructureTransitionTable.h
Here are the errors and how to fix them:

%QTDIR%\qt\src\3rdparty\webkit\javascriptcore\runtime\StructureTransitionTable.h(146) : table()->add(key, Transition(structure, 0));
Change it to table()->add(key, Transition(structure, nullptr));
%QTDIR%\qt\src\3rdparty\webkit\javascriptcore\runtime\StructureTransitionTable.h(153) : table()->add(key, Transition(0, structure));
Change it to table()->add(key, Transition(nullptr, structure));
Make the same two changes for %QTDIR%\qt\src\3rdparty\javascriptcore\JavaScriptCore\runtime\StructureTransitionTable.h
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值