(1)mingw32 手动编译Qt库:
configure.bat -opensource -debug-and-release -platform win32-g++ -prefix E:\Qt\build -no-openssl -c++std c++11 -opengl desktop -no-icu -skip qt3d -skip qtandroidextras -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtwayland -skip qtwebchannel -skip qtx11extras
NOTE:1.命令中应该指定-prefix,在qmake.exe中,会使用绝对路径。因此,如果不指定prefix,编译好的库不能移动位置。
2.用mingw32编译时,-platform应该是win32-g++。
按照网上说,用mingw和MSVC编译,编译出的库大小不一样。而且,mingw跟msvc相比,mingw的跨平台性好。
3.用mingw编译Qt库时,应该将系统环境变量与MSVC相关的bin,lib,include都删掉,不然编译时会报错找不到一些库。
4.编译之前应该保证环境变量中有python和perl。对于ruby,由于本次编译有些库没有编译,因此没有设置ruby。
5.如果指定了prefix,编译过程中编译出来的库,在相应文件夹下面的lib中,只有安装之后,才被安装到prefix中。
6.暂时从不到icu,openssl,qt3d,qtandroidextras,qtquickcontrols,qtquickcontrols2,qtsensors, qtwayland,qtwebchannel ,qtx11extras。因此skip。
7.按照这个命令,可以编译成功。
(2)mingw32-make
(3)mingw32-make install
安装时,会将所有相关的lib,bin,include库拷贝到prefix指定的路径下。
(4)由于编译时qmake.exe中使用的是绝对路径,因此如果将编译好的库换个位置,会无法正常使用。解决方法是:
从源代码下的qtbase拷贝qt.conf到bin下,与qmake.exe在同一目录
内容为:
[paths]
Prefix=..
(5)最后要将Qt库的路径添加到环境变量中,设置好程序运行时,遇到以下错误
解决方法1:可以将bin/plugin/platforms拷贝到用户程序同级目录。(暂时没有找到其他更好的办法,谁有好的方法,欢迎交流)