标题:使用mingw编译完整Qt5的过程
作者:myleader
日期:2012-12-22 22:00
内容:
坛子里似乎已经有人编译出Qt5了,不过大多有问题,不是缺少opengl就是缺少openssl,还有缺少webkit的,本文提供的仍然不能说是绝对完整的,不过相对以前的编译方法也完整了很多。这个方法编译出来的Qt5包含openssl、opengl和webkit
首先要准备开发环境,也就是Qt5的依赖软件包。Qt5在编译过程中需要依赖
network模块需要openssl,openssl又依赖zlib和gmp,gmp又依赖nasm,而这些软件包在编译时又依赖msys和mingw
编译脚本需要perl、python、ruby
webkit部分需要icu
先讲32位的
1)准备msys和mingw。
我使用的是niXman的套装
http://sourceforge.net/projects/mingwbuilds/?source=directory
国内的qp-gcc和pcxprj版本的mingw编译出来的软件不依赖libgcc_s_sjlj-1.dll,不过glibc的许可协议是LGPL的,静态链接原则上是违反LGPL的,而且他们的套装停留在4.6版本了,而最新的Qt5需要编译器支持C++11,需要4.7版的mingw,所以我就换成niXman的了
如果你水平够高,也可以按照
https://github.com/niXman/mingw-builds
制作自己的mingw包。因为你水平够高,所以楼主这里就不详细说了。反正我觉得人家制作好的已经足够了,如果要修改的话无非就是把glibc改成静态的,但是那样违反LGPL,所以楼主懒得改。
niXman的套装里面包含了msys,不过没有中文化
http://lscfinal.blog.163.com/blog/static/171469862201102113944397/
按照这个帖子,把msys的中文问题解决掉。同时该fstab把mingw挂载到msys的/mingw目录
如果你的计算机处于防火墙后面,修改.bashrc,添加
export http_proxy='http://用户名:密码@服务器:端口'
export ftp_proxy='http:// 用户名:密码@服务器:端口'
这样每次启动msys都会加载代理服务器设置
然后把mingw的bin和i686-w64-mingw32下的bin都加入系统PATH变量中。在我的电脑上点右键,在“系统属性里面”的“高级”选项卡,点下面的环境变量,PATH中各个目录以分号分隔
为了确保环境变量设置正确
gcc -v测试一下
2)http://www.nasm.us/
下载nasm的源代码,解压缩之后和常规的linux软件安装一样
./configure --prefix=/mingw
make
make install
3)http://sourceforge.net/projects/libpng/files/zlib/
下载zlib的源代码
unzip zlib127.zip
cd zlib-1 ..
#1 Re:Qt5使用mingw编译的过程 [jerryh 12-22 22:31]
这个版本我反复试了几次不成功..等会再试试.
正在用 RubenVB personal builds 编译,这个好象速度要快不少
其它GCC版本总是编译出错.,不用再试了
#2 Re:Qt5使用mingw编译的过程 [roywillow 12-22 22:33]
膝盖已烂,给跪……
network不用openssl也可以编译通的,所以我觉得那个“需要”不太妥当哦。另外这里:
http://qt-project.org/doc/qt-5.0/qtnetwork/ssl.html
有这么一句话:
By default, an SSL-enabled Qt library dynamically loads any installed OpenSSL library at run-time. However, it is possible to link against the library at compile-time by configuring Qt with the -openssl-linked option.
我可不可以理解为,Qt在编译的时候不一定需要openssl库存在,它可以在运行的时候探测,并且依然能使用ssl的功能?但是不清楚如果编译时没有装openssl,那么这个Qt是不是SSL-enabled的呢?
至于webkit,还是再观望一段时间吧
另外你的Qt5是在msys下编译的?
#3 [jerryh 12-22 22:34]
目前用MinGW编译是真心地不容易啊.
#4 回 3楼(jerryh) 的帖子 [roywillow 12-22 22:36]
我觉得我有必要去学着接受用msvc编译器了,并且用官方的预编译库……
不过一直没搞懂msvc是只带着个编译器呢,还是连winsdk和dxsdk都带上了呢……
#5 Re:回 3楼(jerryh) 的帖子 [XChinux 12-22 23:57]
引用第4楼roywillow于2012-12-22 22:36发表的 回 3楼(jerryh) 的帖子 :
我觉得我有必要去学着接受用msvc编译器了,并且用官方的预编译库……
不过一直没搞懂msvc是只带着个编译器呢,还是连winsdk和dxsdk都带上了呢……
似乎默认安装VCExpress,只带windows sdk,没有dxsdk吧?
msvc已占领了windows平台,bcc/icc/gcc越来越没地位了。