碰到很多在windows上面用mingw32的脑残人类....归根结底是SDK害的.感觉很郁闷和无奈.....献上本文.希望能帮助一些windows编程的大仙们.与Qt4这lib更好的互动吧.
本人学习Qt4的动机...自从开发游戏以来.基本上是使用MFC...MFC这个....实在是.哎~...后来打算另辟蹊径.选择了wxwidgets..当时引擎绑了Lua.打算写个字处理....结果.叫我很失望...wxwidgets的 富文本.实在是bug成群呀.wx改的差不多了.后来突然有人告我..Qt4 LGPL了...差点没死过去...ok.可以叫wx死去了....嘿嘿.Qt4.为啥不用它....兴致勃勃搞了个 SDK装上了....结果发现mingw32这个东西....用它3年的积淀就要浪费.不用它该怎么办呢.看readme 和 官网.知道windows的.dll .lib 还有静态都是可以的.ok.为了我的3年.为了摆脱两个折磨我的GUI.我终于要解脱了.
1.首先需要下载一个源码包.然后解压.
http://get.qt.nokia.com/qt/source/
(Qt的包Ftp. 找到:
qt-everywhere-opensource-src-4.6.0-rc1.tar.gz 17-Nov-2009 09:41 153619571)
2.需要的一些环境变量.
我是把Qt放到了 E:/Qt/4.6.2/ 下面.就拿这个为例来配置.
打开windows的环境变量.
Path项加入 E:/Qt/4.6.2/bin; (由于下面配置了QTDIR所以这块也可以写成 %QTDIR%/bin)
新建QMAKESPEC项加入 win32-msvc2005; (使用vs2005来编译库)
新建QTDIR项加入 E:/Qt/4.6.2
3.拿到vsvars32.bat
学过VS的大仙肯定知道.这个是什么.就是vs工具的一个配置宏.每当打开一个cmd的时候.需要这个东西来定义临时的path.因为需要用到nmake这个是必须的了.当然你可以直接把文件内的path定义到环境变量.这样就不需要每次开一个cmd就要运行一次了.
%VS安装目录%/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat
找到后.可以拷出来一份放到桌面上面.打开cmd把vsvars32拖进去.运行. 输入nmake看看.能不能找到如果能找到.说明您成功了..
4.编译Qt4 Win版
经过您上面的配置.就可以开始编译Qt4了.
在刚才拖入vsvars32的命令行窗口中 使用cd命令 指定到您解压到硬盘上的Qt4的目录.
之后键入 configure -platform win32-msvc -debug-and-release -fast -webkit (注释. 平台为win32 debug release都编辑 快速编译 编译webkit开发包(不想用可以去掉));
然后选择 openSource的版本.
选Y,然后输入qmake 然后就会开始生成整个Qt的工程.
最后会停下来.然后输入 nmake 就会开始编译.
编译的时间很长.需要耐心等待.呵呵...我家编了 4个小时.....呵呵.不过完成后会看到.dll和.lib.你会很兴奋的.
5.编译第一个程序
随便写个cpp.来试试:
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QLabel>
#include <QtCore/QTextCodec>
#include <QtGui/QPushButton>
#include <QtGui/QVBoxLayout>
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
QTextCodec::setCodecForTr(QTextCodec::codecForName("gb18030"));
QWidget* pWidget = new QWidget;
QLabel label(pWidget);
label.setText(QObject::tr("同一个世界,同一个梦想!"));
QPushButton* btn = new QPushButton(QObject::tr("关闭"), pWidget);
QVBoxLayout* layout = new QVBoxLayout;
layout->addWidget(&label);
layout->addWidget(btn);
pWidget->setLayout(layout);
QObject::connect(btn, SIGNAL(clicked()), pWidget, SLOT(close()));
pWidget->show();
return app.exec();
}
这个是精通Qt4的第一个程序.写好了起个名字.比如main.cpp.保存.
然后打开cmd. 把vsvars32.bat拖进来.回车.进入.你保存main.cpp的 目录.(保存的地方不要有中文)
然后qmake -project
然后qmake (会生成.pro,和两个makefile.一个debug 一个release)
然后nmake (会编译debug版本默认,如果想编译release需要 /f makefile.release)
然后运行看看成果.呵呵.
6.vs2005的集成
没啥说的不能debug...写啥都会死的很惨.IDE是最好的选择..VS无论从哪个角度来看都是编程的上品.现在就把Qt4与vs2005联系起来.
继续上面的cmd :
qmake -project -t vcapp 回车
qmake
你会发现生成了一个.vc工程.然后你就编译吧.原来怎么用现在还是怎么用.加文件了需要重新 qmake.还是比较麻烦的.不过已经好很多了不是吗?呵呵.如果这么编程实在是太不流畅了.不像本人的性格.
7.vs2005安装Qt4的插件
http://qt.nokia.com/downloads/visual-studio-add-in(如果是中文版的vs可能 .ui双击打不开 designer...其他功能正常.公司是中文的就不好使了...家里一直都用E文版的.所以没有任何问题.)
ok.装上插件后.整个Qt4和Vs整合的非常好.可以创建Qt4的工程呀.什么的.已经脑残的不行了....不需要在细说了.有啥问题.可以给本人留言.祝您Qt愉快.