• 7309阅读
  • 15回复

[下载]Qt5.5.0 and QtCreator 3.4.2 patch for MinGW in MSYS2 ready for download! [复制链接]

上一主题 下一主题
离线johnyork
 

只看楼主 倒序阅读 楼主  发表于: 2015-07-25
楼主耗时一个月自主开发的补丁包,各只需要2点下载积分,绝对的良心价啊!

Qt5.5.0 patch for MinGW in MSYS2 :
在Qt 5.5.0官方原版源代码基础上针对MSYS2环境的MinGW编译器修改:
1.动态链接版本Qt可编译源码自带的ANGLE、webkit;
2.静态链接版本Qt可编译源码自带的ANGLE,不保证完全编译webkit;
3.修正自主编译的Qt链接的程序在QtCreator中执行时无法找到window插件的问题
4.可选择使用MinGW编译的fontconfig、freetype2、zlib、harfbuzz、icu、openssl、glib-2.0、sqlite3等(由于MSYS2中MinGW带的harfbuzz没有静态编译库,编译静态链接Qt时需要自己编译harfbuzz,可参考我的博文:http://blog.csdn.net/JohnYork/article/details/46434075);
5.修复MinGW编译QtCanvas3D时的编译错误(该错误并不是编译器不兼容,根本原因是Qt的moc工具不支持一些本该支持的预编译命令);
6.修复MinGW编译QtActiveQt组件时的编译错误;
7.修复QtImageFormats在引用编译系统的jasper、libmng、libtiff-4、libwebp库时的链接错误;
8.提供自动化编译链接、安装脚本makeinstall,可自动检测和拷贝动态链接版本的Qt所依赖的动态链接库

QtCreator3.4.2 patch for MinGW in MSYS :
基于QtCreator 3.4.2版官方源码修改,修正在MSYS2下使用MinGW编译器编译时的错误,并提供自动化编译安装脚本"makeinstall"。
注意:由于MSYS2并未提供clang.dll的lib文件,需要自己手动从clang.dll生成一个并命名为libclang.dll.a,生成方法请参考网上教程,用到的工具有pexports、dlltool。



离线彩阳

只看该作者 1楼 发表于: 2015-07-25
先下载来看看。
上海Qt开发联盟,热忱地欢迎你的加入!
离线stlcours

只看该作者 2楼 发表于: 2015-07-27
我昨天在CSDN上也见到这个东西了,但是不明白是干什么用的,楼主帮忙详细解释一下?为什么需要MSYS2呢?
离线johnyork

只看该作者 3楼 发表于: 2015-07-27
回 stlcours 的帖子
stlcours:我昨天在CSDN上也见到这个东西了,但是不明白是干什么用的,楼主帮忙详细解释一下?为什么需要MSYS2呢? (2015-07-27 15:45) 

MSYS2在windows环境下提供一个类Unix的shell,与MSYS1.0类似,可以运行shell脚本,可以使用很多基于shell的命令及工具,比如pkg-config、dlltool等等,同时MSYS2提供了MinGW-w64 32位和64位的编译环境,为那些不想使用商业编译环境比如VS2013、BCB的人提供基于GNU协议的开源自由编译环境。
与MSYS1.0不同的是MSYS2可以支持Unix、Linux中的fork函数,我所知道的就这么多,可能表述上有错-_-!你想了解的更多的话建议你上网搜一搜相关的资料,
MSYS2在sourceforge.net上的项目主页地址是http://sourceforge.net/projects/msys2/?source=directory ,你可以在那里下载MSYS2的安装包和安装指南。不过因为sourceforge.net服务器故障,MSYS2有半个多月没更新了。
离线stlcours

只看该作者 4楼 发表于: 2015-07-27
回 johnyork 的帖子
johnyork:MSYS2在windows环境下提供一个类Unix的shell,与MSYS1.0类似,可以运行shell脚本,可以使用很多基于shell的命令及工具,比如pkg-config、dlltool等等,同时MSYS2提供了MinGW-w64 32位和64位的编译环境,为那些不想使用商业编译环境比如VS2013、BCB的人提供基于GNU协议的开源自由 .. (2015-07-27 19:37) 

真是麻烦你打了这么多字。但我问的不是这个问题,而是你做的这个东西的目的是为什么?我觉得现在的官方QT挺好的呀,各种不同平台都有安装包。你做这个东西的目的,莫非是从此不需要安装Linux,也可编译测试Linux版本的QT程序?
离线wangye_123

只看该作者 5楼 发表于: 2015-07-28
谢谢楼主分享自己的劳动成果
离线adonais

只看该作者 6楼 发表于: 2015-07-28
回 stlcours 的帖子
stlcours:真是麻烦你打了这么多字。但我问的不是这个问题,而是你做的这个东西的目的是为什么?我觉得现在的官方QT挺好的呀,各种不同平台都有安装包。你做这个东西的目的,莫非是从此不需要安装Linux,也可编译测试Linux版本的QT程序? (2015-07-27 20:10) 

人家都说明了,是在msys2环境下编译qt5.5的一套补丁,跟你说的linux版本无关.
那么为什么有的人要在windows系统上使用msys2环境呢?这主要是个人习惯问题.
离线johnyork

只看该作者 7楼 发表于: 2015-07-28
@adonais   说得对,这确实是个人习惯问题。
我用Qt的目的是不想用有版权费的商业开发框架,那些版权费我这样的小开发者承担不起,也没必要去承担。但是呢,官方MinGW编译器编译的Qt包里面的QtCreator却是用VC2013编译的,在使用第三方控件时还得分别用MInGW和VC编译,这意味着我不用VC就没办法在QtCreator中方便的使用第三方控件
于是呢我就尝试着用Qt官方发布包自带的MinGW编译器来编译Qt,结果又发现自带的MinGW编译器又只能满足基本的编译需求,各种第三方库比如openssl、sqlite3之类的没办法直接编译,且官方脚本无法编译Qt自带的ANGLE库,就只有找独立安装的MinGW编译器来编译,最后找到MSYS2才基本满足需求。
本帖提到的人: @adonais
离线stlcours

只看该作者 8楼 发表于: 2015-07-28
回 johnyork 的帖子
johnyork:@adonais     说得对,这确实是个人习惯问题。
我用Qt的目的是不想用有版权费的商业开发框架,那些版权费我这样的小开发者承担不起,也没必要去承担。但是呢,官方MinGW编译器编译的Qt包里面的QtCreator却是用VC2013编译的,在使用第三方控件时还得分别用MInGW和VC编译, .. (2015-07-28 19:50) 

虽然我才疏学浅,还是不明白你的意思。不过MinGW是可以在Windows上同时编译QT OPENSSL和SQLITE的(不清楚是不是SQLITE3),我手里的项目就同时用到了这些,而且最后编译出来的exe就一个文件,很爽~~~
本帖提到的人: @adonais
离线adonais

只看该作者 9楼 发表于: 2015-07-29
回 stlcours 的帖子
stlcours:虽然我才疏学浅,还是不明白你的意思。不过MinGW是可以在Windows上同时编译QT OPENSSL和SQLITE的(不清楚是不是SQLITE3),我手里的项目就同时用到了这些,而且最后编译出来的exe就一个文件,很爽~~~ (2015-07-28 20:18)

你如果在linux上做过开发,那么很容易就会明白.
或者我们做个测试,你下载sqlite3源码
https://www.sqlite.org/2015/sqlite-autoconf-3081100.tar.gz
然后用mingw分别编译一个静态库和动态库版本.

离线dbzhang800

只看该作者 10楼 发表于: 2015-07-29
回 johnyork 的帖子
johnyork:@adonais     说得对,这确实是个人习惯问题。
我用Qt的目的是不想用有版权费的商业开发框架,那些版权费我这样的小开发者承担不起,也没必要去承担。但是呢,官方MinGW编译器编译的Qt包里面的QtCreator却是用VC2013编译的,在使用第三方控件时还得分别用MInGW和VC编译, .. (2015-07-28 19:50) 

VC Express 和 VS Community 都是免费的。而且对个人和小公司开发商业程序是没有限制的
本帖提到的人: @adonais
离线adonais

只看该作者 11楼 发表于: 2015-07-29
回 dbzhang800 的帖子
dbzhang800:VC Express 和 VS Community 都是免费的。而且对个人和小公司开发商业程序是没有限制的 (2015-07-29 08:59)

VC Express 和 VS Community 虽然免费,然而它们不支持完整的c99以及c++11和c++1y,
完全不支持 c11标准.
并且安装包巨大,部署安装极费时间.
还有很重要的一点,它们虽然免费,但并非没有限制,公司或组织使用时,有必要多读读它们的许可证条款.

而mingw没有这些问题,压缩后不到50M,解压后就可以使用.
当然对于项目的生产应用,不建议使用mingw编译器,官方的MinGW发展停滞.
而比较受欢迎的mingw-w64 crt还不是很稳定.
离线dbzhang800

只看该作者 12楼 发表于: 2015-07-30
回 adonais 的帖子
VC Express 和 VS Community 虽然免费,然而它们不支持完整的c99以及c++11和c++1y,
完全不支持 c11标准.
并且安装包巨大,部署安装极费时间.
.......


恩,这是一个原因。不过
1. VS专业版和旗舰版对C/C++标准的支持和社区版完全一样,所以这不是社区版的问题。
2. 尽管对标准的支持不够,但也很难撼动它的地位。就像Windows对posix标准基本就不支持,但用户群很大;IE对w3c标准支持非常烂,仍然比较流行。
3. 最近几年,微软对标准也开始重视起来了,比如VS2015对C++11/C++14/C++17的支持在逐步完善。全新的符合标准的Edge浏览器替代IE的位置。等


还有很重要的一点,它们虽然免费,但并非没有限制,公司或组织使用时,有必要多读读它们的许可证条款.


使用社区版VS开发私有程序的限制当然是有的,不过他们重点限制能盈利的大企业:有250台以上的PC 或年收入高于100万美金的企业。对于其他企业,只要不超过5个人使用,就没有限制。

https://www.visualstudio.com/zh-cn/products/visual-studio-community-vs

对于个人

任何个人开发人员都能使用 Visual Studio Community 创建自己的免费或付费应用。

对于组织

在以下情况下,组织中的用户(数量不限)可以使用 Visual Studio Community:教室学习环境、学术研究或参与开放源代码项目。

对于其他所有使用情景:
在非企业组织中,最多 5 名用户可以使用 Visual Studio Community。 在企业组织(即拥有超过 250 台 PC 或年收入高于 1 百万美元的组织)中,只允许在上述参与开放源代码项目、学术研究和教室学习环境使用情景下使用 Visual Studio Community。


而mingw没有这些问题,压缩后不到50M,解压后就可以使用.
当然对于项目的生产应用,不建议使用mingw编译器,官方的MinGW发展停滞.
而比较受欢迎的mingw-w64 crt还不是很稳定.


恩,其实从Qt对MinGW和VS的支持上,也能看出端倪。http://download.qt.io/official_releases/qt/5.5/5.5.0/
MinGW版的Qt,一般只提供一个。
离线realfan

只看该作者 13楼 发表于: 2015-07-30
回 adonais 的帖子
adonais:VC Express 和 VS Community 虽然免费,然而它们不支持完整的c99以及c++11和c++1y,
完全不支持 c11标准.
并且安装包巨大,部署安装极费时间.
还有很重要的一点,它们虽然免费,但并非没有限制,公司或组织使用时,有必要多读读它们的许可证条款.
....... (2015-07-29 17:54) 

VC Express和VS Community居然不支持C++11,那真没的玩了
离线dbzhang800

只看该作者 14楼 发表于: 2015-07-30
回 realfan 的帖子
realfan:VC Express和VS Community居然不支持C++11,那真没的玩了 (2015-07-30 10:24) 

呵呵,VS2015 Community 当然支持C++11

https://msdn.microsoft.com/en-us/library/hh567368.aspx

前面anonais说的是C11,不是C++11
离线lxj434368832

只看该作者 15楼 发表于: 2015-11-18
谢谢楼主分享
快速回复
限100 字节
 
上一个 下一个