WindowXP下安装QT4.5

少有的技术贴烂尾了……受到置疑了,这个当时折腾的实在太恶心,完事后实在懒得再写过程了。

我最后的解决方案是编译了两个Qt,一个用来编译静态的,一个用来编译动态链接的。其实安装后默认是动态链接,所以copy然后编译一次就可以了。

我相信至少4.5这个版本没有经过编译测试,一大堆的编译选项根本不起作用,默认的编译甚至进行到一半会报错(至少在我这里是这样),而且报错的是demo和examples,我很无语,当时我手动修改Makefile将所有有关demo和examples的行全部删掉才成功完成的。

使用时通过类似这样的方法 C:\WINDOWS\system32\cmd.exe /K C:\Qt\bin\qtenv.bat 通过改变环境变量文件来调用两种不同的环境。

另,编译Qt之前电脑里只有DevCPP,我其实是用二进制的Qt编译的Qt自己……上一个版本用的是4.2,比这个版本编译起来方便多了。

Ok,简单的情况就这么多,如果还有问题欢迎继续置疑。

———————————–华丽分隔线———————————–

12日晚更新:

今天一天都在搞编译环境,难得有这么高的兴致,相应的,一天没干活,对不起我的薪水啊,虽然某种意义上这也是为我将来的工作做准备。

花费大量时间编译的同时,发现了几个问题。

Qt3支持的库相当占空间,还有我应该用不到的XML等支持,不过多编译也不是坏事,反正硬盘现在大了。
使用-static全部重新编译qt是个很傻瓜也很占空间的举动,像assistant这种东西编译成静态的根本没意义,我觉悟还没有高到任意机器都要随时看手册学习的地步。只静态编译lib和qmake应该就可以了。
所谓的static相对share只是在编译时多链接了几个库,当然不重新编译这些库也没有,不过这意味着编译好static的环境可以同时编译出share的程序。
———————————–华丽分隔线———————————–
昨天晚上make上就去睡觉了,结果出了问题,修改一下。

第一步当然是下载,QT当前最新release版本是4.5,第一次推出了SDK(和JAVA学的?),将库和跨平台所需内容集成。

下载地址:http://www.qtsoftware.com/downloads/sdk-windows-cpp

如果有配置好可随时使用的编译环境,可考虑只下载源代码:http://www.qtsoftware.com/downloads/qt-creator-1.0-source-package

下载完毕双击安装,直觉上没什么不一样,比较纳闷4.5里把assistant从开始菜单中移走了,感觉莫名其妙。

其实只是复制一大堆文件,然后添几个环境变量而已,4.5安装完并没有自动添加,看来必须要自己动手。

在环境变量里添加QTDIR为安装目录,我安装到了C:\Qt下。然后修改PATH环境变量,添加%QTDIR%\qt\bin (放qmake的)和%QTDIR%\mingw\bin(放make的)我因为装过devcpp就用dev的make路径了。因为QT4.5的make还要打mingw32-make。

这样其实就算安装完了,就可以直接在命令行下面简单3部曲编译了

qmake -project

qmake

make

不过由于默认下载为动态链接版,编译好的程序必须在有QT库的计算机上才可以运行,所以想要将编译出静态版本,需要重新编译QT。

方法也比较简单,不过时间很长,在QT开始菜单点击Qt Command Prompt,然后在当前目录下

configure -static -release -fast (时间很长,大于五分钟)

make (时间那是相当长,几个小时吧,睡着了不知道)

make clean

这三行本来是照网上抄的,结果出了问题,我很不明白为什么连example都要一起编译-_-b,而且还编译不过!重新手动执行configure.exe也没有找到类似no-example的选项,于是试过几次别的方法后最终手动修改Makefile,把所有有关example和demo的make语句全部删掉,编译通过。找了一个例子测试了一下发现只有200K大小还以为出了问题,又执行了次make install,然后发现我找的例子里没调qt的库,当然大不了,于是顺利完成。最终参数为 -static -release,没有添加fast。

虽然最后一步无所谓,不过还是省了相当不少的硬盘空间,最终大小1.5G左右,make clean省了大概450M。

不过我依然觉得不方便,这样编译出的东西虽然可以在任意电脑上运行,不过相当大,尤其make debug的时候最简单的程序也要几十M且慢。不知道有没有方法可以静态动态随时切换啊。。。

QT4.5生成的release程序又变大了,原来只有8M左右,现在有11M了!!!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注