目标:搞定PlayBook(真机/模拟器)上面开发和移植Qt应用所需要的开发环境。
步骤:
Part A)准备开发环境。
Part B)创建项目,配置Qt开发环境。
Part C)在PlayBook simulator上运行Qt程序(略)
Part A)准备开发环境:
OS: Windows 7 64 bit
BlackBerry PlayBook Native SDK 2.0.1
PlayBook 2.0.1 simulator(vmware虚拟机)
Qt 4.8.1 环境:
下载qt4.8-playbook-simulator-i386.bin,在32位Linux Ubuntu上面安装,拷贝安装目录到Windows 机器上,目录结构如下图。
注意:qt4.8-playbook-simulator-i386.bin,安装后的目录是PlayBook simulator x86 CPU的Qt类库。
注意:qt4.8-playbook-linux-i386.bin,安装后的目录是PlayBook真机arm CPU的Qt类库。
关键的几个目录和文件:
lib: 下面是Qt核心可运行类库 for PlayBook simulator ,是x86 CPU的,包括LibQtCore.so, libQtGui.so等等。
include: 下面又分子目录,子目录(QtCore, QtGui等)下面分别是对应类库的头文件
plugins\platforms目录下面有关键的一个libblackberry.so文件,用来将Qt和PlayBook OS集成。
Part B)创建项目,配置Qt开发环境
使用NDK想到创建新的C++应用项目。
设置项目的Build Configurations为simulator-Debug。
这样,你在Build Project的时候,将生成x86 CPU的二进制程序,可以运行在PlayBook或者BlackBerry 10的 simulator上。
下一步,为程序添加Qt运行类库。
注:PlayBook OS 2.0里面没有内置Qt类库;BlackBerry 10里面有内置。
打开bar-descriptor.xml文件
选择设置Simulator-Debug配置,添加文件。
修改lib/libblackberry.so为lib/platforms/libblackberry.so。
如果不照此办理,这个Qt程序在PlayBook上面运行的时候,没有办法初始化Qt运行环境。
接下来,为项目添加library。
其目的有三:
1. 这些library的二进制运行库文件,将打包到bar文件里面。
2/3. 告诉开发工具,编译的时候如何include header文件,如何link object库文件。
下面让我们来验证一下上面窗口中提到的四处修改。
按照上面加入QtCore的方法,分别加入QtGui, QtOpenGL。这三个是编写Qt程序必须的三个库。
Build Project,报错,说是找不到QtCore/xxx.h,QtGui/xxx.h等头文件。
注意到编译器qcc的参数里面,include了QtGui,QtCore等目录。但是有时候,程序代码里面是带目录include QtCore/xxx.h,而不是直接include xxx.h。
那么我们只需要配置项目,告诉qcc哪里找到QtCore的上一级目录即可。再次Build Project,qcc编译器找到了包括QtCore/QtGui/QtOpenGL等值目录的include父目录。编译通过了。
在运行的时候,报错,说找不到合适的platform。
解决办法1:在Run Confguration里面加应用运行参数-platform blackberry
解决办法1:把参数设置到应用描述文件bar-descriptor.xml里面。重新Build, Run即可。
这次又报错,说找不到Qt的font路径。
那我就找个字体路径,加到bar-descriptor.xml文件里面。
最后,Qt应用顺利的在PlayBook模拟器上面运行起来了。
图我就不给大家看了。就是一个Hello World Qt应用而已。
需要说明的是,这个Hello World还没有用QML,没有包括moc编译。
下次再讲。
目标:搞定PlayBook(真机/模拟器)上面开发和移植Qt应用所需要的开发环境。
步骤:
Part A)准备开发环境。
Part B)创建项目,配置Qt开发环境。
Part C)在PlayBook simulator上运行Qt程序(略)
Part A)准备开发环境:
OS: Windows 7 64 bit
BlackBerry PlayBook Native SDK 2.0.1
PlayBook 2.0.1 simulator(vmware虚拟机)
Qt 4.8.1 环境:
下载qt4.8-playbook-simulator-i386.bin,在32位Linux Ubuntu上面安装,拷贝安装目录到Windows 机器上,目录结构如下图。
注意:qt4.8-playbook-simulator-i386.bin,安装后的目录是PlayBook simulator x86 CPU的Qt类库。
注意:qt4.8-playbook-linux-i386.bin,安装后的目录是PlayBook真机arm CPU的Qt类库。
关键的几个目录和文件:
lib: 下面是Qt核心可运行类库 for PlayBook simulator ,是x86 CPU的,包括LibQtCore.so, libQtGui.so等等。
include: 下面又分子目录,子目录(QtCore, QtGui等)下面分别是对应类库的头文件
plugins\platforms目录下面有关键的一个libblackberry.so文件,用来将Qt和PlayBook OS集成。
Part B)创建项目,配置Qt开发环境
使用NDK想到创建新的C++应用项目。
设置项目的Build Configurations为simulator-Debug。
这样,你在Build Project的时候,将生成x86 CPU的二进制程序,可以运行在PlayBook或者BlackBerry 10的 simulator上。
下一步,为程序添加Qt运行类库。
注:PlayBook OS 2.0里面没有内置Qt类库;BlackBerry 10里面有内置。
打开bar-descriptor.xml文件
选择设置Simulator-Debug配置,添加文件。
修改lib/libblackberry.so为lib/platforms/libblackberry.so。
如果不照此办理,这个Qt程序在PlayBook上面运行的时候,没有办法初始化Qt运行环境。
接下来,为项目添加library。
其目的有三:
1. 这些library的二进制运行库文件,将打包到bar文件里面。
2/3. 告诉开发工具,编译的时候如何include header文件,如何link object库文件。
下面让我们来验证一下上面窗口中提到的四处修改。
按照上面加入QtCore的方法,分别加入QtGui, QtOpenGL。这三个是编写Qt程序必须的三个库。
Build Project,报错,说是找不到QtCore/xxx.h,QtGui/xxx.h等头文件。
注意到编译器qcc的参数里面,include了QtGui,QtCore等目录。但是有时候,程序代码里面是带目录include QtCore/xxx.h,而不是直接include xxx.h。
那么我们只需要配置项目,告诉qcc哪里找到QtCore的上一级目录即可。再次Build Project,qcc编译器找到了包括QtCore/QtGui/QtOpenGL等值目录的include父目录。编译通过了。
在运行的时候,报错,说找不到合适的platform。
解决办法1:在Run Confguration里面加应用运行参数-platform blackberry
解决办法1:把参数设置到应用描述文件bar-descriptor.xml里面。重新Build, Run即可。
这次又报错,说找不到Qt的font路径。
那我就找个字体路径,加到bar-descriptor.xml文件里面。
最后,Qt应用顺利的在PlayBook模拟器上面运行起来了。
图我就不给大家看了。就是一个Hello World Qt应用而已。
需要说明的是,这个Hello World还没有用QML,没有包括moc编译。
下次再讲。