
Qt作为业内最著名的UI开发工具之一,是一套完整的跨平台C++图形用户界面应用程序开发框架,可以实现一套源码,多个平台编译运行。自从1991年被奇趣公司推出之后,在业内获得了广泛的应用,不仅仅被用来UNIX/LINUX平台下的桌面环境KDE,更有其他诸多极为著名的软件工具都是采用Qt开发的,比如:Adobe Photoshop Album(就是大名鼎鼎的PS),Autodesk Maya,Google Earth,Opera,Skype,SMPlayer,VirtualBox,WPS Office,极品飞车等等,哈,是不是吓一大跳?
说到跨平台,Qt的本事可不是盖的,不管是windows(x86/x64),linux,MacOS,还是嵌入式arm,全部通吃。换句话说,同一份qt的代码,可以编译成上述各个不同的平台下运行的文件,只需要更换一些配置命令即可。但是,每一种平台下的开发环境搭建的步骤那肯定是不一样的。针对嵌入式环境,搭建过程无疑是最复杂也是最麻烦的,下面就是我本人的亲测过程全记录。
第一步、背景介绍
1、Qt版本介绍
首先介绍一下Qt所能生成出来的各个不同版本之间的区别。
根据所应用的目标系统不同,同一份Qt源码编译后所生成的版本也是不一样的。大致来说分为3种:
第一种是在linux系统上编译完后仍然在linux系统上运行的,称为x11版本(至于为什么叫x11,这是因为linux系统的应用程序与视窗程序之间是通过X窗口系统的X11协议进行交互,所以称之为x11系统。具体请自行百度);
第二种是在linux系统上编译完后转移到arm平台上运行的,称为Embeded arm版本,编译完后的文件必须烧录到arm处理器上运行,在PC端无法运行;
第三种称之为Embeded x11版本,也叫做qvfb版本。这里要解释一下,如前所述,lixnu的应用程序是以X11协议(X窗口系统)输送到屏幕显示界面的,X server负责图形显示,应用程序负责计算、修改数据,两者基于某种协议通信。对于嵌入式linux,qt应用程序同样也需要一个窗口系统才能显示,但是嵌入式linux系统不能使用X11(太耗资源了),奇趣公司就专门开发了一个qws(QT windows system), 应用程序按照协议向qws发送数据,服务端负责显示数据。换句话说,qvfb就是qws的显示设备。不过要注意的是,embeded x11版并不是我们的开发板最终使用的Qt库,编译这个版本只是为了方便我们调试, 先在PC中仿真运行,看看界面,不必下载到开发板的文件系统中运行,两者的运行效果除了界面基本相同,其他方面还是有差异的。
经过上述分析可以看出,其实,我们做嵌入式开发,只需要涉及到后面2种版本,第一种版本的只有桌面应用程序开发的人才需要使用。而对于后面2个版本,严格来说只需编译Embeded arm版本的程序就好,因为它才是最终在arm平台上运行的版本。但是,如果只编译Embeded ARM版本的话,每次编译完都得下载到开发板上去运行才能看到效果,开发过程太过麻烦,因此我们才需要引入Embeded x11版本,借助于PC端的显示系统,快速完成界面部分的调试。所以,综合起来可以这么说,编译x11 版本的目的是为了方便学习Qt,编译Embeded x11是为了体验仿真效果,编译Embeded ARM版本才是为了完成嵌入式程序开发。
2、开发环境介绍
下面对我所安装的开发环境、以及所安装的Qt版本进行介绍,便于对比和查阅。
物理机:Windows 10 64位;
虚拟器:Virtualbox 5.20;
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-87581-1.html
“世界上由龙变虫的国家