• 11246阅读
  • 3回复

[原创]Win764+MinGW+openal+angle+webkit 动态+静态编译32位QT5.1.0 [复制链接]

上一主题 下一主题
离线难得糊涂
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-05
— 本帖被 XChinux 设置为精华(2013-07-05) —
//
//Win764+MinGW动态+静态编译32位QT5.1.0
//

2013.7.13备注:根据官方文档,编译的时候在cmd环境中sh.exe被发现,将导致编译错误,编译前检查git/msys等路径是否在环境变量中。
2013.7.13备注:静态链接ICU库后,如果库名“ibsicudt.a前面没有lib这三个字符,需手动添加


一.系统需求
1.MinGW(需要x32-4.8.0-release-win32-dwarf-rev2.7z/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z这两个包)
http://sourceforge.net/projects/mingwbuilds/files/?source=navbar
2.Qt5.1.0源码包
http://master.qt-project.org/official_releases/qt/5.1/5.1.0/single/qt-everywhere-opensource-src-5.1.0.zip
3.Perl(5.12或更高版本)
http://downloads.activestate.com/ActivePerl/releases/5.16.3.1603/ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi
4.Python(2.7.5版本,3.0以上版本会出错)
http://www.python.org/ftp/python/2.7.5/python-2.7.5.msi
5.Ruby
http://files.rubyforge.vm.bytemark.co.uk/rubyinstaller/rubyinstaller-2.0.0-p195.exe
6.ICU
http://download.icu-project.org/files/icu4c/51.2/icu4c-51_2-src.zip
7.OpenSSL
http://www.openssl.org/source/openssl-1.0.1e.tar.gz
8.ANGLE
http://code.google.com/p/angleproject/
http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe
9.OpenAL
http://connect.creativelabs.com/openal/Downloads/openal-soft-1.13.tbz2
9.cmake
http://www.cmake.org/cmake/resources/software.html
10.Direct X SDK
http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe


二.建立环境
1.在任意分区建立MinGW-Build目录
2.解压x32-4.8.0-release-win32-dwarf-rev2.7z到MinGW-Build\MinGW32
3.解压msys+7za+wget+svn+git+mercurial+cvs-rev13.7z到MinGW-Build\Msys
3.修改MinGW-Builds\Msys\etc\fstab文件,添加如下三行文本:
    #Win32_Path                                Mount_Point
    ?:/MinGW-Build/MinGW32                    /mingw
    c:/perl                                    /perl
4.安装Perl、Python、Rubya并设置系统环境变量
例如:C:\Python27;C:\Ruby200\bin;C:\Perl\site\bin;C:\Perl\bin
5.编译ICU
a.解压icu源码到?:\LibsPath\icu
b.执行?:\MinGW-Builds\msys\msys.bat
    $cd /?/LibsPath/icu/source
    $./runConfigureICU MinGW --prefix=$PWD/../InstallPath --enable-static            //同时编译动态和静态库
    $make && make install && make clean
6.编译OpenSSL
a.复制源码压缩包到?:\LibsPath (这个源码包一定要用tar来解,不然有符号链接问题)
b.执行?:\MinGW-Builds\msys\msys.bat
    $tar xvzf openssl-1.0.1c.tar.gz
    $cd openssl-1.0.1c
    $ ./Configure --prefix=$PWD/InstallPath no-idea no-mdc2 no-rc5 shared mingw
    $make depend && make && make install &&make clean
7.编译OpenAL
a.使用cmake生成makefile文件
b.进入?:\openal\build目录
c.mingw32-make


9.修复一些编译错误
a.qtbase\tests\auto\corelib\io\qprocess\testSpaceInName\testSpaceInName.pro文件
    DESTDIR = "../test Space In Name" 改为 DESTDIR = "../testSpaceInName"
b.test参数错误
    qtquick1\tests\auto\declarative\qdeclarativemoduleplugin\qmldir_copier.pri
    qtquick1\tests\auto\declarative\qdeclarativemoduleplugin\pureQml\pureQml.pro
    qtquick1\tests\auto\declarative\qdeclarativemoduleplugin\pluginWithQmlFile\pluginWithQmlFile.pro
    qtquick1\tests\auto\declarative\qdeclarativemoduleplugin\pluginMixed\pluginMixed.pro
    在这四个文件中的copy2build.commands = 这一行中$(MKDIR)前加 “||” (不加引号)
c.angleqtbase\src\angle\src\libGLESv2\libGLESv2.pro 这个工程需要dxsdk中的fxc.exe生成一些头文件
    注:但是我编译的时候没有生成不知道怎么回事,所以建了一个脚本
下载地址:http://yunpan.cn/Qt5WFSqgpLjBx
8.建立mingw32-build-qt5.1.0.bat
下载地址:http://yunpan.cn/Qt5WFSqgpLjBx
三.开始编译Qt5.1.0
1.解压源码到?:\Qt5.1.0
2.执行mingw32-build-qt5.1.0.bat
4.mingw32-make -i -k 2>d:\5.1.0shared-build.err.log
5.等吧,这是个漫长的过程。
7.如有不足请跟帖指正,谢谢。


未解决问题:编译完成mingw32-make install时,无法安装pkgconfig文件 这个好像是qmake的问题,以qtbase\src\tools\bootstrap\Makefile.Debug为例11758行:
    "..\..\..\lib\pkgconfig\Qt5Bootstrap.pc" 这个应该是"../../../lib/pkgconfig/Qt5Bootstrap.pc"这样才对,导至无法安装pkgconfig,这个我手动复制的,
    如果你们有解决办法,请告诉我。




人活着靠自己
离线qq525qq

只看该作者 1楼 发表于: 2013-07-11
收藏下
离线realfan

只看该作者 2楼 发表于: 2013-07-13
很完整啊。。。。。。
离线adonais

只看该作者 3楼 发表于: 2013-07-14
写的非常详细.
但是不推荐nixmann 的gcc 4.8版,生成的pe文件非常大,官方使用gcc4.8是错误的.
应该使用rubenvb编译的gcc 4.7.3.

并且ANGLE也不用下载,qt源码已经包含有了.
快速回复
限100 字节
 
上一个 下一个