Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台

          阅读本文之前请先阅读Beaglebone Black——嵌入式QT开发环境搭建一文,上一文中已经安装好Qt库和Qt creator,并且能够在其中实现一键编译程序、传送到BBB开发板、运行程序。

          Qt作为一个跨平台的软件,既然他能够编译出运行在BBB板子上的界面程序,那么同样的代码,再不做任何修改下能不能经过编译使得到的可执行文件运行在本PC机中的Ubuntu12.04系统中呢?答案是肯定的!

           首先必须了解Qt creator的一个概念:Kit。

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第1张图片

        

         如上图所示的Kit,它包含了Qt versions、编译器、Debuggers以及设备这四个部分。

         Qt versions指的是编译源码时,你想使用哪个版本的qt库,比如上一文中我用qt-everywhere-opensource-src-4.8.6.tar.gz这个源码包编译出了一个用在ARM板子上的qt库版本,如果以后你想编译源码到Android设备上,那你必然需要把这个源码包编译出一个Android版本的qt库。或者哪天你又需要版本5.4的qt库,那你需要下载一个5.4的源码包然后编译出对应的qt库。

         编译器指的是编译源码时你使用的编译器类型,比如上一文中我编译的程序要运行在BBB板子上运行,那么我需要使用gcc-linaro-linux-gnueabihf-4.7这个版本的交叉编译器,如果你现在想编译一个运行在装有ubuntu12.04的PC机上的程序,那么显然你要使用gcc这个编译器。又或者哪一天你要编译其他平台上的程序,那你就需要其他的编译器了。

         Debuggers当然指的就是调试器了,这个不多说,理解如编译器。

         设备指的就是程序运行的目标平台,他可能是装有ubuntu12.04的PC机,或者是linux系统,或者Android系统,或者其他的智能系统。比如上一文中,我选择地设备是通用的Linux设备,那么在这个设备(BBB)之下,Qt creator保存的信息是设备的主机名(IP地址)、SSH端口号、账户和密码,这些信息可以让Qt creator在编译完你的程序之后将你的程序传送到板子上直接运行,当然其他设备也可以有各自的信息,各有妙用,牛逼吧!

          之所以有这个概念,那是因为对于不同的情况,这四个部分你都可以根据实际情况组合起来成为一套Kit,所以Kit其实就是一系列参数设置以及工具的组合。那么同一套源码,或者说同一个工程,你可以给他配置不同的Kit,这样,你可以通过不同的Kit编译出不同平台上的可执行程序,操作极为方便。

---------------------------------------------------------------------------------------------------------------------------------------------------------

          废话不多说,上一文中我设置了一个名为Beaglebone Black的Kit,这个Kit用于编译运行在BBB上的可执行程序,那么这一次我想设置出一个编译本PC机可执行程序的Kit。

          (1)Qt versions

             上一文我用qt-everywhere-opensource-src-4.8.6.tar.gz这个源码包编译出了一个用在ARM板子上的qt库版本,安装在PC机的/opt/qt-arm/目录下,同理这一次我要用这个qt源码包编译出一个/opt/qt-pc/版本的qt库。

             进入源码目录,清除之前编译产生的文件,运行make clean,在运行make confclean清除上一次的而配置信息。

             运行sudo apt-get install libx11-dev  libxext-dev libxtst-dev,否则make步骤会出错。

             运行./configure -v -opensource -confirm-license -prefix /opt/qt-pc,对本次的编译进行配置

             make

             sudo make install。

             安装完成,并且此时qt库安装到了/opt/qt-pc/目录下。在Qt creator的Qt versions中进行设置

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第2张图片


            简单说来,就是讲新编译好的qt库中的qmake文件路径添加到Qt versions,以便构建kit时可以选择到。


            (2)编译器

              由于这次构建的Kit是编译本PC机的可执行程序,所以编译器就是gcc,一般本PC机的编译器Qt creator都能自动检测到。设置截图如下:

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第3张图片

             

           在上一文的Beaglebone Black对应的Kit中,则需要指定交叉编译器的路径。


           (3)Debuggers当然也是本PC机的gdb了,不多解释。在上一文的Beaglebone Black对应的Kit中,则需要指定交叉调试器的路径。

           (4)本kit中的设备当然是本PC机了,设置如下:

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第4张图片

               在上一文的Beaglebone Black对应的Kit中设备选择的是通用Linux设备,则需要填写设备的IP、SSH端口、账户、密码信息。


               一堆的应用确定点击完后,就得到了一个新的Kit,那么现在我的Qt creator中有了两个kit,分别为Beaglebone Black和PC-Ubuntu12.04,分别用于BBB和本PC机的可执行程序的编译,真正实现了跨平台的一处编写,处处编译!截图如下,

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第5张图片


           展示一下在Qt creator实际中如何使用这两个Kit,如下图:

Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台_第6张图片

             打开一个工程后,点击第1个按钮,后续的项目、构建套件、构建就会自动弹出来,项目下面高亮的表示你选中的工程,构建套件下面高亮的表示你选中的Kit,最后一个构建表示你想用Debug还是Release版本。选中这些之后再点击5进行编译,然后点击运行6,不错意外的话,在两个构建套件之下你会得到相同的界面,两个界面源自同一套源码,实现了毫无压力的瞬间跨平台!


       

你可能感兴趣的:(Beaglebone Black——使用和配置Qt creator的Kit,实现瞬间跨平台)