• 5363阅读
  • 1回复

[原创]自编译QT中的ICU库问题 [复制链接]

上一主题 下一主题
离线天下无雪
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-02
编译QT和qtwebkit一般都要使用ICU库,网上的教程基本都是直接利用源码目录里的VS2010解决allinone方案直接编译,但是我试验后发现VS2010可以编译,但是在VS2012上debug模式会报错
此外,allinone编译出来的ICU是动态库,并没有静态库,所以追求编译静态QT库的网上高手都是把前面编译的动态库名字前+s应付,这样虽然是可行的,但是我总是觉得不妥,毕竟这引用的还是动态库
今天碰巧在google上搜索了一下ICU,结果发现了一个老外的blog,里面有windows下编译ICU的批处理,下来试用后的确不错
http://www.npcglib.org/~stathis/blog/2012/06/17/windows-task-build-the-icu-library-for-32-bit-and-64-bit/
使用这个批处理要注意几个问题
1. VC安装目录不能有空格,默认安装的可以用我修改的,其实就是在路径上加上引号
2. 需要修改的也就是ICU版本号,VC目录,ICU源码目录,cygwin目录几个,其中cygwin应该可以用msys替换,毕竟要的就是个GNU的make环境
3. QT静态编译的时候用的是/MT,而默认的ICU都是用的/MD,所以在link的时候会大量报错,解决方法是修改ICU源码目录下的runConfigureICU,把/MD /MDd改成/MT /MTd,所以批处理需要运行2次,其中第一次用默认的/MD编译,第二次用/MT编译,而第二次编译时用/MT动态库会报错,忽略即可
4. 由于此bat是一次性编译所有x86/x64,debug/release,static/shared,故共有8种组合,无法单独指定编译目标,作者说以后可能会修改,熟悉批处理的大神也可以帮忙改改

另外推荐下此批处理作者的bin库,有很多用VS编译好的常用库
http://www.npcglib.org/~stathis/blog/binaries/


修改的批处理地址:http://pan.baidu.com/share/link?shareid=3521537425&uk=2484928048
VS2012编译的ICU库:http://pan.baidu.com/share/link?shareid=331387784&uk=2484928048


离线彩阳

只看该作者 1楼 发表于: 2013-08-03
有MinGW下的编译方案就更好了。
上海Qt开发联盟,热忱地欢迎你的加入!
快速回复
限100 字节
 
上一个 下一个