Qt静态库的下载和安装配置-修正_第1页
Qt静态库的下载和安装配置-修正_第2页
Qt静态库的下载和安装配置-修正_第3页
Qt静态库的下载和安装配置-修正_第4页
Qt静态库的下载和安装配置-修正_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Qt静态库的下载和安装配置(QML/QtQuick修正)(2015.03.31byWinland)在Windows下使用Qt开发最后都是要发布程序的,Qt官方的库都是动态链接库,如果发布就需要一大堆的dll,而且还要记得复制plugins/platforms里面的插件,如果用到各种格式图片还要plugins/imageformats里面的插件,所以东西会越弄越多。针对Windows部署基于Qt的软件,Qt官方有专门文档:http://doc.qt.io/qt-5/windows-deployment.html对于动态版本程序发布,官方Qt库里面也带了专门部署工具:QTDIR/bin/windeployqt,这个本人也没用过,感兴趣的可以自己试试。本文主要讲Qt静态库的下载、安装和配置使用。使用静态Qt编译的程序只需要一个exe文件,就可以走遍天下都不怕。可以自己根据Qt的源代码编译自己的静态版本Qt库,但这个过程非常耗费时间,而且如果有问题还要重新编译,比较麻烦。幸好网上有现成编译好的静态库,所以给新手和懒人提供了方便。、QtStaticBuilds下载在网上寻找Qt静态库,就搜索QtStaticBuilds,目前找到两个地方有:/projects/static-qt//fostersoftware/QtStaticWindows第一个是SourceForge上的项目,第二个是GitHub上的项目,这两个网站希望新手记牢了,以后要找好东西都可以去这两个网站。GitHub上面的QtStaticWindows比较新,是5.3.2版本的,所以就选这个来做教程示范。UpdatedREADME卤Iwlw&isiltwm己即N叫―liitestcEMutdnbliccrilUpdatedREADME卤Iwlw&isiltwm己即N叫―liitestcEMutdnbliccril&・5.3.2Qt5.3.2&aicBuikifcr阐rxl叫而2moottissgn国RE/JJME.mdUpOaledREADME.2monffisago□3README-mdQtStaticWindows<>CodeQ-u熊门PullReqipests取Puls^IJt口耳必HITPS:1weURLhttpsrnithuti.CE电Youoanidons情HTTPSwSuMersiDfi@@Cl(weinDwktwQtowiilogdZIPQtStaticEkildsf-orWindowscompiledusingmingw3-2wrtiioplions-static-release.Thisbuldisonlyforeducationalpurpose.RefertoODiJiaforLicenseandotherinfonnnatian.但是这个下载可能比较卡比较慢,也可能挂掉。推荐的是安装git工具,新建QtStatic目录,在该目录里执行命令:gitclone/fostersoftware/QtStaticWindows.git然后等待下载完成,文件就会出现在QtStaticWindows子目录里面。国外网站速度慢正常,所以本人打包好了一个放在百度网盘分享:http:〃/s/1nt3d0jZ位于QtSDK/QtStatic/QtStaticWindowsz从百度网盘下载即可。QtStaticWindowsz里面仅仅包含静态编译的Release版Qt库,仅用于生成程序发布,不便于调试,这个文件里面也没有开发环境,仅仅是一个库。所以要配合Qt官方的开发环境来使用,集成到官方QtCreator里面用。目前Qt最新的官方开发环境下载页面:http://download.qt.io/official_releases/qt/5.4/5.4.0/下载MinGW版本:qt-opensource-windows-x86-mingw491_opengl-540.exe也可以从刚才的网盘链接下载:http:〃管/1nt3d0jZ位于QtSDK/Qt5/qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe安装官方Qt开发环境时,记得把全部组件都选中安装!二、Qt静态库安装1、Qt官方开发环境安装运行qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe点击下一步,

安装文件夹浏览面.请指定将在H市安装耻5.4.0的文件夹小浏览面.C:\Qt\Ql5^.OI,Ass4cia.t«QQUiTmn.filetypeswithQ&Cr咻.七口广可以使用默认路径,如果C盘空间不够就装其他盘根目录。点击下一步,选择组件Qt5Qt54.011件且并将占用您大约?07GiE白明5盘空间o」国Qt54@MinGW4.94(32bit)Op^fiGLISourceComponerrts』BTools0QtCrtiSitor3.3.0|:MinGW4.94■|/|QtExtirasI,QtCanvas3DLO(TechPmeT-|JQtWebViewluO(TechPreview)北极全送G[助裾选如选择组件界面里,默认没有选中源代码组件和MinGW编译调试环境,点击“全选”按钮,把所有组件都选中(Tools/MinGW4.9.1必须要装),点击下一步,-sr许可协议语阖读以下评可防设。在雄族安装之前,您强须接受此也诚中皂含的靛款■>GEHEHAL*Qtisft?ailabltiwid«raG«nm«rci:allic4-nc»withvwi^tbs:pricinemedals■andl私心k娓ewIhalmeetaV4rietyofn«e:ds.C&iTrnerfiialQtli亡皿£白keepiypiffcod»propri-stary»her»flnlyy-oucmtrfll5de«qxiyourendproduel1sdevelopnenl,userexperienceanddistribatioii.Too.alsogatpr«&tpa-rkslike<4diliontlfutirtipnfiility^pr^JuctivityanJiuicin.gtno1msiworld-classsupportandaclassstrategicrelationshipwithTktQtCompamytom&k«11H肋y&urproduct*ndd«v«lapmnntjgoiiJsurc:met.Qthisbeencreatedundertheb«li'efofepend-svelo-pmentandprovidin^▼QIh&v«riid6d.速工七电tothetermsinthelicfeftst■臣噌^^把立士工IdonotaccepttMetarmsajidcomiitkoiksoftheaboveLicenseiftgrO-WQ-IltE.IT-i&oFl-uiS-选择agree,点击下一步,开始菜单■1快捷方式送择您格蜘其中包陞程序快捷方式的开始薪单中也还可以输入包林以仓隆新文件关。Ot51.0360安全中心AccessoriesAdministrativeToolsCFCAGoogleChromeMaintenanceStartupWPSOffice拾却假郭5湾金拦美化大师下一步飙)取消这是开始菜单设置,点击下一步,已做好安装准备设置程序现已至普就绪,可以开始在意的计算机上安装Ct5.4口。显示详堀信息里安柒口)取消点击安装,等待安装完成,点击下一步,|正在完成5540向导单击“完成”以退出皿I4.口向导”[YLiiirtehQlCreil&r点击完成,会打开QtCreator。把QtCreator最小化,等会配置。2、QtStaticWindows安装将QtStaticWindowsz直接解压到比如C:\Qt,也可以放在其他分区。这时候qmake.exe位置是:C:\Qt\QtStaticWindows\532\bin\qmake.exe检查C:\Qt\QtStaticWindows\532\bin\有没有qt.conf文件,从GitHub直接下载的QtStaticWindows是没有qt.conf文件,如果bin目录没有,

那么从C:\Qt\Qt540\5.4\mingw491_32\bin目录复制一个到静态库的bin目录。三、Qt静态库的配置1、QtVersions酉己置Qt官方开发环境和静态库都安装了,还要把静态库集成到QtCreator里面。打开QtCreator的菜单“工具“--》"选项",然后对话框左边选择“构建和运行”,在构建和运行页面,右边选择“QtVersions

点击右上角"添加",会弹出查找qmake.exe的对话框,找到刚才装的C:\Qt\QtStaticWindows\532\bin\qmake.exe点击确定,就看到新的Qt库:点击右下角Apply按钮,应用配置。注意一个问题,如果静态库bin目录没有qt.conf文件,会出现如下错误:"Qt没有被正确安装,请运行makeinstall"可以按照:http:〃/andy65007/p/3493309.html修复问题,或者按照前面说的复制一个qt.conf到静态库bin目录,然后重新尝试添加静态库。

2、构建套件(Kit)配置还是刚才的配置对话框,在构建运行配置页面,点击“构建套件(Kit)福正皿运行*版要福正皿运行*版要构建式件OCiUQLVariaam图需第D«bu^.BrxClui.]|Cil.必尸点击右上角“添加”,FakeVifl4惬勘匚"QtQuick鄙I唯行融脑好所器■本断MdgidBi-aekBSiry修改名称为QtStatic,修改Qt版本为刚才添加的Qt5.3.2(5.3.2),编译器就用默认的MinGW,调试器用默认的gdbo然后点击“Apply”按钮,再点击“OK”。3、新建项目测试打开QtCreator菜单“文件”--》“新建文件或项目选择QtWidgetsApplication,点击"Choose",用默认的路径,点击下一步进入KitSelection1口QtWidgeUApplica«tionKitSelection*/itsQtCrtatorc-uiusethefoIL?n-lilckitsforptgjeelimtitied:DeE”回串乩知UlkiH汇电=kl*pqi5.4DIki^T32hit详情一J•。希"l诵详情,T一步I刖消两个都选上,第一个是官方Qt库,第二个是Release版静态Qt库。然后点下一步,点完成。进入代码编辑主界面:

-QiCreatorS-otairH由1nwindcwi:MaXn以工fish*p«:iLi->aetupUiCchia):dele-E-s-uj.jXuxhResultsfiMU'JBConsole,VlLLBiii.Q.dor:、代iNtundm0-QiCreatorS-otairH由1nwindcwi:MaXn以工fish*p«:iLi->aetupUiCchia):dele-E-s-uj.jXuxhResultsfiMU'JBConsole,VlLLBiii.Q.dor:、代iNtundm0CppX5Ma.xnH'jjnilcw;:■*■出intf'indo-v()0b4&3.n.^Ln.dlErw(p&ren'Et+ulC;e'-'UIjsMalnWlnd.™!Ll力士氏JI:1日+向unbnedifuntitled.J甑处twiwpp巴nLainwindow.cpp/骅面交片Iinclude"Mdnwirsdaw.bHtIncludenul■>ln-wlndou,.h打需安档nri^irhMndowjcpp应用程用辑上地福的比]点击左下角倒数第三个图标,就是纯三角形那个,就可以生成程序并运行。点击左下角Debug字样,会弹出编译套件选择和编译版本选择:一般使用官方Qt库的Debug版本编译并调试程序,在确认没有问题之后,选才QQtStatic+Release编译方式,生成可发布的exe程序。比如上面例子的就在项目路径..\build-untitled-QtStatic-Release\release\untitled.exe这里生成的是14.1MB,直接双击可以运行,不需要配置依赖,也没什么依赖。4、(可选)压缩exe后再发布如果嫌14.1MB还大,那就用UPXShell压缩一下,压缩之后只有7.38MB,也是可以独立运行的,可以无脑发布了。工具UPXShell也放到之前的百度网盘分享里面,读者可以试试看。四、QML/QtQuick程序问题修正按照上面安装方式,新建的QtQuickApplicaition编译能够成功,运行时会出错,报错为:QQmlApplicationEnginefailedtoloadcomponentqrc:/main.qml:2module"QtQuick.Controls"isnotinstalledqrc:/main.qml:1module"QtQuick"isnotinstalledqrc:/main.qml:2module"QtQuick.Controls"isnotinstalledqrc:/main.qml:1module"QtQuick"isnotinstalled这个问题如鲤在喉,折磨了作者很久,后来才找到看可行的办法:解决参考http://forum.qt.io/topic/45364/how-to-surpress-qml-plugins-to-be-built-statically经过测试,方法一:将生成的.exe放到QTDIR/qml文件夹里可以正常运行。这个如果用于发彳f,需要拷贝QTDIR/qml文件夹里面的组件。方法二是真正的实现一个exe发布,修改main.cpp代码,如下示范:#include<QApplication>#include<QQmlApplicationEngine>//1.addheaders#include<QtPlugin>#include<QtQml>//2.addQ_IMPORT_PLUGIN#ifdefined(QT_STATI(C&&!defined(Q_OS_MAC&&!defined(QT_NAMESPACE#include<QQmlExtensionPlugin>Q_IMPORT_PLUG(QWindowsIntegrationPlugin)Q_IMPORT_PLUG(QtQuick2Plugin)Q_IMPORT_PLUG(QtQuickControlsPlugin)Q_IMPORT_PLUG(QtQuickLayoutsPlugin)Q_IMPORT_PLUG(QtQuick2WindowPlugin)#endifintmain(intargc,char*argv口){QApplicationapp(argc,argv);QQmlApplicationEngineengine;〃3.registerTypes#ifdefined(QT_STATIC&&!defined(Q_OS_MAC&&!defined(QT_NAMESPA)CEqobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance())->registerTypes("QtQuick");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls.Private");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->registerTypes("QtQuick.Controls.Styles");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickLayoutsPlugin().instance())->registerTypes("QtQuick.Layouts");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2WindowPlugin().instance())->registerTypes("QtQuick.Window.2");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuick2Plugin().instance())->initializeEngine(&engine,"QtQuick");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickControlsPlugin().instance())->initializeEngine(&engine,"QtQuick.Controls");qobject_cast<QQmlExtensionPlugin*>(qt_static_plugin_QtQuickLayoutsPlugin().instance())->initializeEngine(&engine,"QtQuick.Layouts");

qobject_cast<->qobject_cast<->initializeEngineqobject_cast<->initializeEngine#endifQQmlExtensionPlugin*>(qt_static_plugin_QtQuick2WindowPlugin().instance())(&engine,"QtQuick.Window.2");engine.load(QUrl(QStringLiteral("qrc:/main.qml")));returnapp.exec();}改了main.cpp之后重新编译得到的exe就可以正常独立运行了。注意上面修改的代码仅对MinGW版本StaticQt有用,VisualStudio静态编译的Qt不会出现找不到组件的问题,不需要修改main.cpp代码。上面增加的代码是最基本的QML组件,如果要添加新的QML组件比如QtMultimedia,如下示范:对于importQtMultimedia5.0的QML,导入静态插件和QtQuick没啥区别。对于QtQuick,找到qml\QtQuick.2\qmldir文件,内容为moduleQtQuickpluginqtquick2pluginclassnameQtQuick2Plugintypeinfoplugins.qmltypes对于QtMultiMedia,找到qml\QtMultimedia\qmldirmoduleQtMultimediaplugindeclarative_multimediaclassnameQMultime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论