查看完整版本: [--
Qt5.1.0 MinGW480 release静态版编译结果及过程分享
--]
QTCN开发网
->
Qt安装与发布
->
Qt5.1.0 MinGW480 release静态版编译结果及过程分享
[打印本页]
登录
->
注册
->
回复主题
->
发表主题
<<
1
2
>>
Pages: ( 2 total )
realfan
2013-07-05 15:50
Qt5.1.0 MinGW480 release静态版编译结果及过程分享
原帖见日志:
http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=1448
这是我编译好的静态release版,有需要的可以直接取用,7z压缩包,文件大小90M左右
http://pan.baidu.com/share/link?shareid=3402474525&uk=673227135
包含odbc,sqlite,没有webkit
(注:如果不是解压到c:\Qt\目录下,需要修改在qmake.exe同一文件夹下的qt.conf文件
内容为
[paths]
Prefix =
C:/Qt/5.1.0-rel-static(路径根据实际情况设)
注意,编码一定要ANSI格式,不能用UTF-8。路径分隔符用"/"或"\\")
如果要自己编译,可以参考下面的过程及需要的文件
一、文件准备
下面用到的文件,可以自行到相应官网下载。我在网盘上也共享了:
① qt-windows-opensource-5.1.0-mingw48_opengl-x86-offline.exe
http://pan.baidu.com/share/link?shareid=3489622492&uk=673227135
或
http://download.qt-project.org/official_releases/qt/5.1/5.1.0/qt-windows-opensource-5.1.0-mingw48_opengl-x86-offline.exe
对于这里编译来讲,只是用里面的mingw。从搭建开发环境的角度,也需要装一个。
② qt-everywhere-opensource-src-5.1.0.zip
http://pan.baidu.com/share/link?shareid=3526029235&uk=673227135
或
http://download.qt-project.org/official_releases/qt/5.1/5.1.0/single/qt-everywhere-opensource-src-5.1.0.zip
③ Python3.3.2
http://pan.baidu.com/share/link?shareid=3536585963&uk=673227135
如果不编译qtwebkit,就不用安装ActivePerl了。
二、安装
① 安装qt-windows-opensource-5.1.0-mingw48_opengl-x86-offline.exe,我是安装在C:\QT\Qt5.1.0
② 将qt-everywhere-opensource-src-5.1.0.zip解压到C:\QT\
③ 安装Python3.3.2 C:\Python33
三、编译准备
编辑C:\QT\qt-everywhere-opensource-src-5.1.0\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.1.0==》5.1.0==》MinGW 4.8(32-bit)==》Qt 5.1.0 for Desktop (MinGW 4.8 32 bit)
进入命令窗口,输入命令
① cd C:\QT\qt-everywhere-opensource-src-5.1.0
② set path= C:\Python33;%path%
③ 配置
configure -confirm-license -opensource -platform win32-g++ -release -static -ltcg -prefix "C:\QT\5.1.0-rel-static" -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -opengl desktop -qt-freetype -no-qml-debug -no-c++11 -no-angle -nomake docs -nomake tests -nomake examples -nomake demos -skip qtwebkit
④ 没出什么错误的话,mingw32-make
⑤ mingw32-make install
好了,大功告成了。在QtCreator中,加一个Qt Version,指定到 C:\QT\5.1.0-rel-static\bin\qmake.exe,就可以用了。
这样,如果用动态的,就用qt-windows-opensource-5.1.0-mingw48_opengl-x86-offline安装的,用静态的,就用自己编译的。
skykingf
2013-07-05 15:58
楼主再写个vs2012的静态编译过程吧
qingxp9
2013-07-05 23:00
问下 creator 如何指定使用自动检测外(也就是你编译好的qmake)呢
realfan
2013-07-05 23:27
QT Creator, 菜单Tools==》Option==》Build&Run==》
Qt Versions选项卡:
点击<<Add>>按钮,选择
C:\Qt\5.1.0-rel-static\bin\qmake.exe (具体路径根据你的目录情况)
version name: Qt5.1.0(rel_static) (这个name是随便取的)
点击<<Apply>>
Kits选项卡:
点击<<Add>>按钮,
name: qt5.1.0rel_static
Device type: Desktop
Compiler: MinGW32
Debugger: Auto-detect
Qt version: Qt5.1.0(rel_static)
彩阳
2013-07-06 10:31
icu这一块真的很难编译,总是出现语法错误,提示找不到的标识符。realfan如何解决的呢?
realfan
2013-07-06 11:50
目前没有环境
qingxp9
2013-07-06 11:59
抱歉,我这样设置好后 [attachment=10654][attachment=10655][attachment=10656]
这里有个错误
无法选择到这个新建的kit 构建
hp_201111
2013-07-06 15:49
版主 编译好的静态release版 不错, 在用。 谢谢了!
hp_201111
2013-07-06 15:52
版主 说了 : 静态release版 如果 不是解压到c:\Qt\目录下,需要修改在qmake.exe同一文件夹下的qt.conf文件。。
meiwm
2013-07-06 18:06
缺少 Qt5Widgetsd.a 是什么情况 0 0
mingw32-make[1]: *** No rule to make target 'H:/code/5.1.0-rel-static/lib/libQt5Widgetsd.a', needed by 'debug\Qt510Test.exe'. Stop.
meiwm
2013-07-06 18:08
搞定了,选成了release--〉debug,
彩阳
2013-07-08 22:16
realfan大神,我想问问:
编辑C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\mkspecs\win32-g++\qmake.conf
找到QMAKE_LFLAGS和QMAKE_LFLAGS_DLL,后面赋值为-static
QMAKE_LFLAGS = -static
QMAKE_LFLAGS_DLL = -static
是不是可以静态链接相关库,而不是动态链接libgcc_s_dw2-1.dll和mingwm10.dll?
meiwm
2013-07-09 09:41
= = 话说 用静态链接qt库的方式木有办法生成dll? 同样的项目动态连接木有问题,这是什么情况?
XChinux
2013-07-09 10:45
代cavendish发:这些自定制的build(realfan的),可以把信息发到releasing邮件列表,例如像这样
http://lists.qt-project.org/pipermail/releasing/2013-July/001391.html
yczwd
2013-07-12 09:12
到了这里总是过不去,是什么原因啊?
C:\QT\qt-everywhere-opensource-src-5.1.0>mingw32-make
cd qtbase\ && ( if not exist Makefile C:\QT\qt-everywhere-opensource-src-5.1.0\q
tbase\bin\qmake C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\qtbase.pro -o Ma
kefile ) && mingw32-make -f Makefile
mingw32-make[1]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base'
cd src\ && ( if not exist Makefile C:\QT\qt-everywhere-opensource-src-5.1.0\qtba
se\bin\qmake C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\src\src.pro -o Make
file ) && mingw32-make -f Makefile
mingw32-make[2]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base/src'
C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\bin\qmake -o Makefile src.pro
mingw32-make[2]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src'
mingw32-make[2]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base/src'
cd tools\bootstrap\ && ( if not exist Makefile C:\QT\qt-everywhere-opensource-sr
c-5.1.0\qtbase\bin\qmake C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\src\too
ls\bootstrap\bootstrap.pro -o Makefile ) && mingw32-make -f Makefile
mingw32-make[3]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base/src/tools/bootstrap'
C:\QT\qt-everywhere-opensource-src-5.1.0\qtbase\bin\qmake -o Makefile bootstrap.
pro
mingw32-make[3]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src/tools/bootstrap'
mingw32-make[3]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base/src/tools/bootstrap'
mingw32-make -f Makefile.Release
mingw32-make[4]: Entering directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qt
base/src/tools/bootstrap'
Makefile.Release:229: *** missing separator. Stop.
mingw32-make[4]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src/tools/bootstrap'
Makefile:34: recipe for target 'release' failed
mingw32-make[3]: *** [release] Error 2
mingw32-make[3]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src/tools/bootstrap'
Makefile:58: recipe for target 'sub-bootstrap-make_first' failed
mingw32-make[2]: *** [sub-bootstrap-make_first] Error 2
mingw32-make[2]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src'
Makefile:42: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: *** [sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory 'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase'
makefile:56: recipe for target 'module-qtbase-make_first' failed
mingw32-make: *** [module-qtbase-make_first] Error 2
C:\QT\qt-everywhere-opensource-src-5.1.0>
nasamit
2013-07-14 23:29
可以單單用動態連結webkit,但是其他用靜態連結嗎?
realfan
2013-07-15 13:54
我测试结果是这样的。
彩阳
2013-07-15 15:41
查一查“'C:/QT/qt-everywhere-opensource-src-5.1.0/qtb
ase/src/tools/bootstrap'”文件夹中的Makefile和Makefile.Debug和Makefile.Release。
alexltr
2013-07-16 11:01
Hi realfan. 我直接下載了你編譯的靜態版來編譯我的程序, 編譯通過,但運行程序出現以下錯誤, 請問一下是什麼原因, 怎麼解決? 謝謝.
QSqlDatabase: QODBC driver not loaded
yczwd
2013-07-17 08:00
我的问题估计是出在环境上,机器装了太多的软件。
后来从新装了系统,在干净的环境中编译就通过了。
另外问下:怎么编译个带webkit的静态库?
我装了ActivePerl,去掉了 skip webkit参数,编译出来的还是不能用,用的时候写出带webkit的程序还是崩溃,或者说少东西
realfan
2013-07-17 13:37
静态编译odbc,需要在pro文件中,加
QTPLUGIN += qsqlodbc
在main.cpp中加
#include<QtPlugin>
Q_IMPORT_PLUGIN(QODBCDriverPlugin)
你试试能否解决问题
realfan
2013-07-17 13:40
静态编译webkit还要装ICU
以前没成功过。后来就再没试。
alexltr
2013-07-17 14:34
hi realfan, 謝謝你的回覆. 但按你說的辦法試了, 還是不行.
QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers:
realfan
2013-07-17 17:00
能上传你的工程及部分代码吗,我试试。
alexltr
2013-07-17 23:35
已通过QTCN管理群把整个工程发到你QQ上,麻烦你指点一下,谢谢。
realfan
2013-07-18 10:42
请查收邮件
alexltr
2013-07-22 23:27
Hi @realfan, 我按照你添加的内容试了, 编译通过,运行也没有问题。非常感谢!
tonny.ren
2013-08-20 20:02
我把你编译好的静态的直接解压到指定文件夹了 也选择静态编译的Qt版本了 可是一点运行就什么反应也没有 编译输出也什么都看不到
界面上也没有绿色运行那个按纽
tonny.ren
2013-08-20 20:06
19:58:18: 为项目aaaaaaa执行步骤 ...
19:58:18: 正在启动 "C:\Qt\5.1.0-rel-static\bin\qmake.exe" D:\qt_test\aaaaaaa\aaaaaaa.pro -r -spec dafult "CONFIG+=debug" "CONFIG+=declarative_debug" "CONFIG+=qml_debug"
Could not find qmake configuration file dafult.
Error processing project file: D:\qt_test\aaaaaaa\aaaaaaa.pro
19:58:19: 进程"C:\Qt\5.1.0-rel-static\bin\qmake.exe"退出,退出代码 3 。
Error while building/deploying project aaaaaaa (kit: qt5.1.0 static)
当执行步骤 'qmake'时
19:58:19: Elapsed time: 00:00.
ygtq
2013-08-21 09:26
[attachment=10971]
[attachment=10972]
[attachment=10973]
[attachment=10974]
还有个问题,已经更改了qt.conf的内容
ygtq
2013-08-21 09:30
求大神指教
楼主,有什么办法吗?
ygtq
2013-08-22 08:29
问题解决了
现在可以静态编译了
但编译出来的程序在关闭时有时会崩溃
楼主知道是怎么回事吗
realfan
2013-08-22 09:52
我觉得你的代码问题可能性较大,如果方便把工程放上来,我看看。
ygtq
2013-08-23 10:42
[attachment=10988]
这个是照着亚飞的教程写的局域网聊天程序,略有更改
经过尝试,似乎只要不使用UI界面就不会出问题,之后写的程序不用UI界面都没有出问题
yzl20092856
2013-08-23 12:09
请问问题是怎么解决的...谢谢
yzl20092856
2013-08-23 12:14
LZ很感谢你能分享这个过程。但是我用你的release有点问题。MinGW32 这个是不是你自己重新搞的编译器。我自动检测没有这个。这样就会导致手动kit前面有个黄色感叹号,其警告,如29楼。
realfan
2013-08-23 12:53
编译器用的就是Qt5.1里面带的
realfan
2013-08-23 12:58
用你的代码编译,运行,没发现问题。生成的exe单独运行,试了几次都没问题
yzl20092856
2013-08-23 14:36
[attachment=10989]
LZ看看有没有遇到这个情况...
ygtq
2013-08-23 14:47
我编译出来的程序在别人电脑上也没有发现问题
但在我自己的电脑上就会出现这样的问题
太奇怪了
yzl20092856
2013-08-23 14:49
请问你那个警告是怎么解决的。。?
[attachment=10990]
ygtq
2013-08-23 14:53
先关闭QtCreator,然后将.user文件删了,重新打开.pro文件
然后就会出现这个界面
[attachment=10991]
然后将两个套件都选上
[attachment=10992]
接下来是最后一步
[attachment=10993]
然后点运行就可以静态编译了
ygtq
2013-08-23 14:56
靠,补几张图
第一张
[attachment=10995]
第二张
[attachment=10994]
ygtq
2013-08-23 16:36
忘了说了,只要前面的警告不是红色的就没管它
uiojkmm
2013-08-25 14:24
请问libtiff,libsvg等等插件是怎么编译的?为什么我make出来的静态库没有相关的a文件?
还有静态plugin是怎么加载的?
phwone
2014-07-02 17:32
还有人吗,楼主大大还能回复不,我编译需要sqlite数据库,出现提示需要SQlite support,我看静态版里有这个插件,怎么用啊??
realfan
2014-07-03 13:49
在pro文件中,加
QTPLUGIN += qsqlite
试试。
建议使用5.31,上面不加也可以了
见
http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=1667
lpdpzc
2014-11-26 20:35
中文会乱码啊,请教楼主怎么解决啊
realfan
2014-11-26 21:57
lpdpzc
:
中文会乱码啊,请教楼主怎么解决啊
(2014-11-26 20:35)
源代码用UTF8格式保存试试
dengsu
2015-04-03 16:14
按照此方法会报错的,根本编译不成功的。
查看完整版本: [--
Qt5.1.0 MinGW480 release静态版编译结果及过程分享
--] [--
top
--]
Powered by
phpwind
v8.7
Code ©2003-2011
phpwind
Gzip disabled