首页 > 代码库 > Qt5.2.0 MinGW480 release静态版编译结果、过程及QtCreator配置分享(realfan的编译方法)(configure -h可以显示帮助)(静态编译mysql插件,需要做一些其它工作,机器上要有mysql)(不编译qtwebkit,就不用安装ActivePerl了)(用到 QMediaPlayer的编译办法)
Qt5.2.0 MinGW480 release静态版编译结果、过程及QtCreator配置分享(realfan的编译方法)(configure -h可以显示帮助)(静态编译mysql插件,需要做一些其它工作,机器上要有mysql)(不编译qtwebkit,就不用安装ActivePerl了)(用到 QMediaPlayer的编译办法)
这是我编译好的静态release版,可以直接取用,7z压缩包,解压即用(感谢zzhouqianq提醒)
http://yunpan.cn/QDvxdTL9LFLJP (提取码:871c)
包含odbc,sqlite,没有webkit
如果要自己编译,可以参考下面的过程及需要的文件
一、文件准备,下面用到的文件,可以自行到相应官网下载。我在网盘上也共享了:
① qt-opensource-windows-x86-mingw48_opengl-5.2.1.exe
http://yunpan.cn/QpMMWfEYnM4fg
静态编译来,只是用里面的mingw。但从搭建开发环境的角度,也建议安装。
② qt-everywhere-opensource-src-5.2.1.zip
http://yunpan.cn/Q4sYIFjYcPbRa
③ Python3.3
http://yunpan.cn/QDApXxWyXUDPW
不编译qtwebkit,就不用安装ActivePerl了。
二、安装
① 安装 qt-opensource-windows-x86-mingw48_opengl-5.2.1.exe ,我是安装在C:\QT\Qt5.2.1
② 将 qt-everywhere-opensource-src-5.2.1.zip 解压到C:\QT\
③安装Python C:\Python33
三、编译准备
编辑C:\QT\qt-everywhere-opensource-src-5.2.1\qtbase\mkspecs\win32-g++\qmake.conf
找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,后面赋值为-static
QMAKE_LFLAGS = -static
QMAKE_LFLAGS_DLL = -static
保存,退出
(如果不做这个修改,生成的执行文件要依赖libgcc_s_dw2-1.dll,libstdc++-6.dll,libwinpthread-1.dll)
四、开始编译
开始==》程序==》Qt5.2.1==》5.2.1==》MinGW 4.8(32-bit)==》Qt 5.2.1 for Desktop (MinGW 4.8 32 bit)
进入命令窗口,输入命令
① cd C:\QT\qt-everywhere-opensource-src-5.2.1
② set path= C:\Python33;%path%
③ 配置
configure -confirm-license -opensource -platform win32-g++ -release -static -ltcg -prefix "C:\QT\5.2.1-mingw32-rel-static" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -no-qml-debug -nomake tests -nomake examples -skip qtwebkit -qt-pcre -no-compile-examples
④ 没出什么错误的话,mingw32-make
⑤ mingw32-make install
五、QtCreator配置
编译好后,在QtCreator中加新编译的qt kits。
打开QtCreator, Tools-->options-->build & run-->
Debuggers选项卡,应该有个C:\Qt\5.2.1\Tools\mingw48_32\bin\gdb.exe 调试器,如果没有,就点击Add,手工加一下。
Compilers选项卡,也应该有MinGW4.8 32bit编译器,如果没有,手工加,指向C:\Qt\5.2.0\Tools\mingw48_32\bin\g++.exe
QtVersions选项卡,应该已经存在C:\Qt\Qt5.2.1\5.2.1\mingw48_32\bin\qmake.exe
现在把自己编译的加进来,点Add按钮,选择C:\Qt\5.2.1-mingw-rel-static\bin\qmake.exe,可以给这个Qt编译版本取个名字,比如Qt 5.2.1 (5.2.1-mingw-rel-static) 点Apply
Kits选项卡,点Add,
name我们随便取一个,比如5.2.1_rel_static,
Compiler选择MinGW4.8 32bit,
Debugger,选择C:\Qt\5.2.1\Tools\mingw48_32\bin\gdb.exe对应的那个
QtVersion,选择Qt 5.2.1 (5.2.1-mingw-rel-static) ,确定,就设置好了。
注:静态编译时,如果工程中使用了插件,需要在pro文件中为QTPLUGIN加上对应的插件才能正常使用,如odbc, sqlite, 打印
QTPLUGIN += qsqlodbc
QTPLUGIN += qsqlite
QTPLUGIN += windowsprintersupport
http://www.qtcn.org/bbs/apps.php?q=diary&uid=123401&a=detail&did=1551
http://www.qtcn.org/bbs/read-htm-tid-55516-ds-1-page-1.html#151538
我的工程里用到 QMediaPlayer,用你的Qt5.2.1静态编译(win8.1 64bit)出现:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer" ,不能播放歌曲,不知道是什么原因。
好像这个可以解决:https://qt-project.org/forums/viewreply/134330/
-Dowload and extract the qtmultimedia submodule [download.qt-project.org]
-Delete the following in the plugins.pro file:
config_wmf: SUBDIRS += wmf
-Change in the directshow.pro file:
!config_wmf: include(player/player.pri)
into
include(player/player.pri)
-Compile it all
-Copy the resulting mediaservice folder next to your executable
http://www.qtcn.org/bbs/read-htm-tid-55837-ds-1-page-1.html#152815
Qt5.2.0 MinGW480 release静态版编译结果、过程及QtCreator配置分享(realfan的编译方法)(configure -h可以显示帮助)(静态编译mysql插件,需要做一些其它工作,机器上要有mysql)(不编译qtwebkit,就不用安装ActivePerl了)(用到 QMediaPlayer的编译办法)