用msvc2008编译qt5.4.0

本文详细记录了如何在msvc2008环境下编译qt5.4.0的过程,包括准备Python、Perl、Ruby等环境,以及特别提到的icu53的裁减与编译,同时提供了编译icu的注意事项和步骤,最后介绍了编译qt时的配置和可能出现的问题。
摘要由CSDN通过智能技术生成

我这里记录一下我用msvc2008编译qt的过程。

qt源码版本:qt5.4.0

编译日期:2015-08-23

编译环境:msvc2008sp1 x86

1.      请先参阅http://doc.qt.io/qt-5/windows-requirements.html,准备环境:Python、Perl、Ruby

2.      虽然qt5.4不再必须依赖于icu,但是如果你要编译qtwebkit,那么还是得编译icu,而icu5.3官方提供的源码包里只有vc2010的解决方案和项目,所以第一步是用vc2008编译icu5.3

    a)        但是你有没有发现qt发行版中的icu53dt.dll有20M+!!!所以这第一小步就献给裁减icu 。google icu可以知道icu是个编码转换库,类似iconv和boost.locale。实际上在Windows上就是WideCharToMultiByte和MultiByteToWideChar两个API的工作,但是很不幸的是qtwebkit并没有使用这两个函数去代替icu库。查阅icu官网可知,icudt里边包含的只是编码字符集等资源,没有多少实际的代码,那么我们就可以想办法去掉我们不会用到的资源——这一点icu早就想到了,他提供了一个页面用于定制icu的资源:http://apps.icu-project.org/datacustom。但是,万事就怕但是,这个页面在我着手整理qt的编译的时候登不上去,我翻墙也上不去,顺便又看了下其他页面,发现下载页面(http://site.icu-project.org/download/53)上在说正事的地方也挂了,我去。还好我之前有下过源码,也定制过自己的资源,好怕怕。

    b)        你经过一系列的挣扎拿到了icu5.3的源码和定制过的icudt53l.dat

    c)        用vc2010编译了几次发现整个过程大致是先编译出来icudt53(d).dll,然后makedata那个工程用pkgdata把资源再打包进icudt53(d).dll,形成最后的icudt.dll(注意,不管是debug还是release最后生成的都是icudt53.dll),按照官方说的把icudt53l.dat放到source\data\in下面,发现到某一步的时候某个工程使用了某个工具把他解压开放在了source\data\out下面,恕我无能或无心,三个“某”字没搞清楚

    d)        icu真是的,大部分工程的名称跟他们生成的二进制都不一样,而且目标文件路径都是修改过的,这给我把vc2010的项目改成vc2008的带来了很大的工作量。而且你可以看到allinone.sln里的项目有20+个。然而并不是每个都是必须的,请再次恕我无心,我并没有完全搞清楚哪些项目是必须的,但是我知道makedata、pkgdata两个工具项目是必

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值