Qt5.4.1 在Win7+MinGW-w64 v6.4.0环境下源码编译64位库文件

1. 准备素材:

1.1  下载Qt源码包 qt-everywhere-opensource-src-5.4.1.zip ,   http://mirrors.ustc.edu.cn/qtproject/archive/qt提供了从Qt1.0到Qt5.9的所有发布版本。谢谢科大镜像站

1.2  安装Perl 解释器 :  http://www.perl.org/get.html , active perl 或 strawberry perl均可

1.3  Windows下建议先安装DirectX,如果你需要使用qt的多媒体处理模块phonon

1.4  安装MinGW-w64,注意一定是64位版本,https://sourceforge.net/projects/mingw-w64/, 下载在线安装器,选择目标平台(x86_64\gcc版本\posix\...),将安装目录的bin目录加入Path环境变量,此处不表。

1.5 如果安装Qml模块,需要预装Python解释器(https://www.python.org/ftp/python/2.7.14/python-2.7.14.amd64.msi)


2. 设置Qt相关环境变量

2.1  将源码解压后的的Qt目录(下文记为$QT$)中的/qtbase/bin目录追加到系统的Path环境变量中; 新建环境变量QTDIR值为 $QT$

2.2  新建QMAKESPEC=$编译目标环境$, 源码编译Qt提供了win32-msvc\win32-g++\linux-g++\linux-clang等多种构建环境,在64位win7+64位MinGW环境中选择win32-g++. 该环境变量其实是编译前运行Qt的configure会用到,如果此处嫌麻烦,也可以不新建QMAKESPEC环境变量,在configure的时候手动指定


3. 配置

编译前先进行配置http://doc.qt.io/qt-5/configure-options.html,运行 $QT$下的configure如下:

.\configure -release  -fast  -shared  -opensource  -prefix $你想要安装Qt的目录$  -opengl desktop  -platform win32-g++ ;


configure的各项参数说明见http://doc.qt.io/qt-4.8/configure-options.html或者运行“.\configure.exe -h”, Qt4.8和Qt5.4的configure参数有一些变化。注意,prefix目录的写法,在windows下一定要写成类似"C:/Qt/5.4.1"或者类似"C:\\Qt\\5.4.1"的记法。千万不要在记为"/c/Qt/5.4.1"[虽然该记法在git-bash中有效,如果你刚好又是在git-bash中执行的configure,的确也能make和make install , 但后续添加qmake作为构建套件时会提示找不到类似/c/Qt.5.4.1路径的错误]


4. 编译

确保当前的mingw32-make 和 g++可执行文件的确来自你的MinGW-w64目录,尤其是当系统中有多个MinGW版本时,建议在git-bash中执行,可使用which ming32-make 和 which g++查看ming32-make 和 g++的路径。  运行mingw32-make -j8 , -j后面的参数指并行构建的任务数,类似linux中的make -j参数,一般取核数的1-2倍。

耐心等该编译完成,i5笔记本大约编译1一个小时


5 .  部署库文件

编译生成的库文件位于$QT$\qtbase目录下,运行ming32-make install 或者直接使用,whatever.  可在qtcretor中新建构建套件(Qt5.4-64bit + MinGW-w64)测试编译结果是否正常。




=======================================================

后记

=======================================================

之前一直试图用MinGW源码编译Qt4.8的windows64位库文件,无奈编译过程总是出错:

主要是__cpuid()函数错误:

https://bugreports.qt.io/browse/QTBUG-34022?page=com.atlassian.jira.plugin.system.issuetabpanels%3Aall-tabpanel

https://sourceforge.net/p/mingw-w64/mailman/mingw-w64-public/thread/[email protected]/

configure成VS2010的工程文件再使用VS编译,生成webkit组件时会出错。


以及其他一些莫名其妙的错误,遂放弃Qt4.8,改投Qt5.4 , 使用MinGW-w64编译过程无错误。


=======================================================

参考链接:

=======================================================

http://doc.qt.io/qt-4.8/install-win.html

http://doc.qt.io/qt-4.8/configure-options.html

http://blog.csdn.net/feichizhongwu888/article/details/48969481

http://m.blog.csdn.net/Form_/article/details/77489328


你可能感兴趣的:(Qt)