移植Qt程序到surface RT
1. 编译Qt库
Surface的操作系统是基于ARM架构的windows RT,所以需要编译出基于相应平台的Qt库。
1.1编译环境
Win8.1操作系统
Visual studio 2013
1.2 编译
从Qt官网下载Qt源码qt-everywhere-opensource-src-5.3.2.zip,解压。阅读文件夹中的README文件,会知道相应配置。还需下载并安装Perl (5.12以上)、Python (2.7以上)、Ruby (1.9.3以上),注意添加它们的安装路径到环境变量PATH中。
打开visual studio 2013的命令提示工具,进入到解压后的Qt源码文件夹下qt-everywhere-opensource-src-5.3.2,先输入命令Configure –help,会知道Configure的相应参数,配置编译选项,然后输入命令nmake编译。如:
>configure -confirm-license -opensource -xplatform winrt-arm-msvc2013 -debug-and-release -prefix "F:\winrt-arm" -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -no-qml-debug -nomake tests -nomake examples -skip qtwebkit
..................
>nmake
.................................
>nmake install
-prefix参数会指定编译完成后的输出目录,必须输入命令nmake install才会把相应文件拷贝到这个目录。
2. 移植Qt examples
2.1 开发工具
Qt Cteator
visual studio 2013
安装完Qt for Winrt集成开发环境后(qt-opensource-windows-x86-winrt-5.3.2.exe),打开Qt Creator添加构建器,即上面编译的Qt库,查看其它的构建器会很容易知道怎么手动添加构建器。
2.2 编译
打开一个Qt examples程序,注意它需依赖的模块,编译的Qt库一般有QtGui、QtCore、QtWidgets、QtNetwork,选择自己添加的构建器加载。
右键点击工程文件(.pro),从当前目录打开命令提示工具。
输入命令,如:F:\winrt-arm\bin\qmake -tp vc test.pro CONFIG+=windeployqt,这样会在目录下形成vs可加载的工程文件(.vcxproj)。windeployqt.exe工具可在打包程序时把依赖的库一起打包,自编译的Qt库如果没有,可从其它构建器的目录下拷贝到自编译的目录(bin目录)。
用visual studio 2013打开生成的工程项目,会看到生成的工程是windows应用商店程序。开发windows应用商店程序需要开发者许可证,但首先需要microsoft账号,根据提示一步一步来即可。双击Package.appxmanifest文件,会发现包名称没有,可用visual studio 2013创建一个windows应用商店程序,然后把包名称拷贝过来。
右键工程创建应用商店程序安装包,注意不要选择上传到应用商店的安装包,那需要购买账号。安装包有3个平台,x86、x64、arm,要选中arm和Release。最后打包成功,会生成一个目录AppPackages,安装包就在其中,.ps1的文件,是powershell运行的文件。
3 安装
拷贝安装包目录到surface中。
Surface能从windows应用商店下载并同时安装程序,若要手动用安装包安装程序,需要申请开发者许可证。在搜索中搜索powershell,用管理员身份打开,然后如下图所示申请开发者许可证。
打开安装包目录,找到.ps1文件,使它弹出右键菜单,选择用powershell打开即可。随后安装成功,可在metro界面看到该程序的快捷方式图标。