漫长的编译结束,记录下过程=。=||
1.环境变量配置
根据http://www.qtcn.org/bbs/read.php?tid=25217 这个帖子里面说的配置了下环境变量(他的是Qt4.5.2),虽然说
这个设置多少有点冗余的,但是为了保证不出问题,都设置一遍。
PATH: D:/QT-4.5.2/Qt/qt/bin;D:/QT-4.5.2/Qt/bin;D:/QT-4.5.2/Qt/mingw/bin;D:/QT-4.5.2/Qt/qt/lib LIB: D:/QT-4.5.2/Qt/qt/lib INCLUDE: D:/QT-4.5.2/Qt/qt/include;D:/QT-4.5.2/Qt/mingw/include QMAKESPEC: win32-msvc2005 QTDIR: D:/QT-4.5.2/Qt/qt
2.编译前的准备
删除
src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/mocinclude.tmp和src/3rdparty/webkit/WebCore/tmp/moc/release_shared/mocinclude.tmp
这两个文件,是为了使防止在编译的过程中出现下面这个错误。
QNetworkReplyHandler.obj : error LNK2001: 无法解析的外部符号 “public: vi
rtual struct QMetaObject const * __thiscall WebCore::FormDataIODevice::metaObjec
t(void)const ” (?metaObject@FormDataIODevice@WebCore@@UBEPBUQMetaObject@@XZ)
QNetworkReplyHandler.obj : error LNK2001: unresolved external symbol “public: vi
rtual void * __thiscall WebCore::FormDataIODevice::qt_metacast(char const *)” (?
qt_metacast@FormDataIODevice@WebCore@@UAEPAXPBD@Z)
Ps:
一开始在网上也看到过这个,但是没有按照去删除这两个文件,结果自己在编译的过程中也出现一堆的关于webkit的错误,一堆“无法解析的外部符号”的错误。
还好之后通过删除这个文件再继续nmake就可以继续编译了(继续nmake后会检测之前的是否被nmake过,如果是的话就会跳过去了)。
PPs:
编译过程中如果出现下面这个错误的话(有些人貌似没有出现这个)
api/qscriptextensionplugin.h(43): Error: Undefined interface
NMAKE : fatal error U1077: “D:/QT/Qt/2009.05/qt/bin/moc.exe”: 返回代码“0x1”
Stop.
NMAKE : fatal error U1077: “"C:/Program Files/Microsoft Visual Studio 8/VC/BIN/
nmake.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.
那么同样,删除/src/script/tmp/moc/debug_shared/mocinclude.tmp和/src/script/tmp/moc/release_shared/mocinclude.tmp
这两个文件,继续nmake就行了。
3.编译工作
首先设置下vs2005的环境变量,为了让接下来configure能够找到nmake等的路径
也就是先在Command下面先运行
C:/Program Files/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat
就可以暂时设置关于vs2005所有环境变量的设置
(这时候不能关闭command命令窗口,因为这样设定过的环境变量时暂时的,只对当前的command有效)
Ps:也可以在开始菜单中直接运行visual stuido 2005的命令提示,这样就自动设定环境变量了,
其实它指定的路径也就是上面的vsvars32.bat,不过它根据不同的cpu的配置略有不同罢了。
所以还是推荐用这个visual stuido 2005的命令提示的方法,虽然我用的不是这个。
接下来就是进入configure目录运行configure了,我用的是
configure -debug-and-release -platform win32-msvc2005
网上查了下,这个阶段主要是运行qmake,而qmake根据不同的平台(如win32-msvc2005)来生成对应的makefile。
机器差,用了近20分钟。=。=||~ shit。
运行结束后,会提示run nmake
输入nmake就开始编译运行了。
10:55开始,中间上上网,看看美剧,占了点cpu,到17:56结束。 默认的参数配置下,耗时7个小时,外加大概5个G的硬盘空间。
Holy Shit~
(nmake是在C:/Program Files/Microsoft Visual Studio 8/VC/bin目录下的,
它是Windows平台下,命令行的编译程序,对qmake生成的Makefile以后进行编译和链接,生成windows平台下的库文件以供使用。)
4.清理阶段
上面的都跑完之后,输入nmake clean进行清理掉那些中间文件(pdb,obj等文件),清理出了4个G左右的空间。
nmake confclean是清理配制文件,据说有问题。。反正这个貌似占的空间不大,就没去执行了。
5.总结
在编译过程中,为了加快速度,可以对configure适当的加些参数,比如-fast,-no-webkit(这个貌似挺耗时的),
还有就是编译完后,qt下的examples目录默认也是会进行编译的,demos目录虽然说是生成了Makefile文件和*.vcproj文件,不过编译过程中并没有去编译这个。
如果不需要编译这些的话,最后就把examples目录和demos目录给删除掉或者重命名掉等,这个推荐的。
在nmake过程中,可以输入nmake sub-src,表示只编译Qt库.而不是全部的Qt包,这个具体不是很清楚。