【嵌入式Linux Qt开发之旅①】Qt及其在嵌入式Linux中的应用

2019-07-12 20:38发布

class="markdown_views prism-atom-one-light">

1.初识Qt

Qt(官方网站)是一个跨平台C++图形用户界面(GUI)库
  • 图形用户界面:Graphical User Interface;
  • C++:使用c++语言开发,利用了c++语言的面向对象特性;
  • 跨平台:一次性开发应用程序,只需重新编译,便可部署在不同平台;

2.Qt在嵌入式Linux中的应用——Qt/E

Qt在嵌入式Linux系统中的应用称为Qt For Embedded Linux分支,简称Qt/E,那么Qt/E有什么独特之处呢? 嵌入式系统一个最大的特点就是系统资源极其有限,相比标准桌面版Qt,Qt/E非常节省内存,它在底层摒弃了Xlib,采用Framebuffer(帧缓冲)作为底层图形接口,Qt/E的应用程序可以直接写帧缓冲,避免了繁琐的Xlib/Server系统。

3.嵌入式Linux Qt应用程序开发流程

普通的Linux应用开发流程如下:
  • ① 在桌面Linux环境下编写,调试;
  • ② 使用交叉编译器编译出ARM可执行程序;
  • ③ 将可执行程序上传到开发板(通常是SSH或者NFS);
  • ④ 在开发板上执行程序;
嵌入式LInux Qt应用程序的开发和普通的Linux应用开发是一样的,只有一点不同: Qt应用程序交叉编译时链接的是动态库,何谓动态库呢?就是编译器只告诉程序该使用哪些库,程序运行时再去调用这些库运行,而在开发板上是没有Qt的运行库的,所以我们拿到开发板后,使用交叉编译器编译Qt源码,得到Qt库,将这份Qt库复制两份
  • 一份放在开发主机上,供编译器调用;
  • 一份放在开发板上,供程序执行时调用;
这个过程称为Qt移植,具体流程如图所示:

4.选择Qt4还是Qt5

Qt目前已经更新到Qt 5.12 LTS版本,主要有两个分支:
  • 商业收费版
  • 开源版本(GPL v3许可证)
值得一提的是,从Qt5开始,Qt只提供桌面开源版本(Windows、MAC、Linux),不提供嵌入式系统开源版本,所以我们想要使用开源的Qt嵌入式版本只能选择Qt4
  • 如果我们仅仅开发桌面系统下的Qt应用,建议选择最新版本的Qt5下载链接);
  • 如果需要开发嵌入式系统中的Qt应用,为了相对应,建议选择使用Qt4下载链接);
本系列教程的主要目的是为了开发嵌入式Linux下的Qt应用,所以我选择使用的版本如下:
  • Linux开发主机Qt 4.8.7
  • ARM Linux 开发板Qt 4.7.3
接下来就让我们一起从搭建环境开始,用Qt分别在桌面环境下和开发板上:Hello,World!

5.Qt开源社区

在学习之旅上,如果需要资料或者有什么不懂的问题,推荐一个比较好的良心社区:Qt开源社区