搜索
bottom↓
回复: 16

胡侃 虚拟机+(Linux)+ QT

[复制链接]

出0入0汤圆

发表于 2014-4-25 20:04:39 | 显示全部楼层 |阅读模式
本帖最后由 suxilong 于 2014-4-25 20:05 编辑

第一:虚拟机
什么是虚拟机?自己问一下度娘吧!
明白什么是虚拟机后,就要选择虚拟机,这个至关重要,因为关乎到后面整个操作爽与不爽。
虚拟机的款类有很多,度娘应该告诉过你。
我只说我认为最常用的。目前有两款:VMware 和Virtual Box,而介于自身知识有限,我只进行下面的对比说明:

虚拟机的选择 之 给不给钱?!
VMware 是商业性质的要求付费试用,(当然现在网络这么发达,而且这里是OOXX**,所以你可以随随便便就在网上找到免费的。)
Virtual Box是开源的,所以直接到官网就可以下载免费版本了。
所以选择任意一款虚拟机都 不存在给不给钱的问题。

虚拟机的选择 之PC 要求
一般虚拟机都对PC的要求比较高,如果你内存没有2G我相信跑起来虚拟机会各钟卡屏各种不爽,当然CPU也有要求。而VMware 相比Virtual Box 对PC的要求就更加高了。目前VMware 10.0.1安装的时候建议你至少要有2G的内存…记住是至少,就算你有2G那也只是最低配置,用起来也是相当的卡。而Virtual Box 相比,要求可能就低点,但为了不卡,爽,那就弄台好点的电脑。至于对PC的要求,官方的描述Virtual Box可以到官网看End-user documentation,VMware的我没找到。
所以电脑差点的用Virtual Box 可能会好点。

虚拟机的选择 之 关于安装增强功能
对于虚拟机使用,其中安装增强功能是不可或缺的。可以说没有增强功能的虚拟机不是虚拟机。增强功能可以将实现host-guest 共享文件,分辨率调节,窗口自动适应等等…
如果你选择Virtual Box,guest又是Linux的话,那请你做好无法安装增强功能的准备吧。
我在Virtual Box4.1.2的版本下安装内核分别为linux2.6.68 与linux3.2.0 的ubuntu,然后安装增强功能,结果老是报错,kernel-headers 没找到….
网上提供了很多办法 比如安装dkms 安装build-essential 安装kernel-devel 等等等,
但是如果你好运的话也许OK,但是如果不好彩的话,那你就等着悲催吧!所以免费不一定就是好的。

在网上找了一个关于的Virtual Box介绍
 VirtualBox是一款免费的开源虚拟机,它简单易用,支持Windows、Linux和Mac系统主机,可虚拟的系统包括Windows (NT 4.0、2000、XP、Server 2003、Vista、Win7、Win8)、DOS/Windows 3.x、Linux (2.4和2.6)、OpenBSD等。VirtualBox支持克隆虚拟机,将64位主机的内存限制提高到了1TB,支持Direct3D,支持SATA硬盘的热插拔等。

难道Virtual Box不支持3.x以上的linux内核版本? 但是2.6.38的也出现了安装增强功能不成功,再说到Virtual Box官网看了一下发现,人家Virtual Box明明是支持linux 3.x的!具体原因真的搞不懂~~~~~ 至于目前最高版本的Virtual Box 4.3.2,我还没尝试。
所以,为了安全起见还是选用VMware ,但如果你想不爽,想折腾的话就用Virtual Box(当然成功安装增强功能的Virtual Box 比Vmware 好。单凭全屏自适应窗口缩放 功能就爽呆了。)

感觉自己有点精神分裂了, 到底哪个好呢?真的要说那一款比较好,还是见仁见智!
所以总结就是,说了这么多,全部是废话, 自己用得爽,才是真的爽。

第二 Linux
关于Linux,因为这潭水不是非一般的深,我觉得是初学的,现在是,以后是,永远都是。所以不能胡言乱语,还是你们自己去问度娘和谷哥吧。
在这里我只想严重的加粗字体的推荐一下 《鸟哥的私房菜》

另外一点就是,选择安装linux的时候,无论是fedora 还是ubuntu。一定要清楚自己的内核版本是多少?gcc 编译器的版本是多少?
如果一开始你就不关心这些版本,我觉得很多时候 搞了大半天都要回过头来思考版本的兼容问题`~~~~~~~请相信我,版本的问题将会一路跟随你,带给你困扰,带给你悲催,总之Linux的学习道路上 一路有它。

第三  QT
对于初次认识QT 的我们,我严重的提醒大家都不要急着就马上下载,然后编译安装。最好就是新what 再how,不然会很why的…
Qt, QT/E, Qtopia 概念解析
Qt泛指Qt的所有桌面版本,比如Qt/X11,Qt Windows,Qt Mac等。由于Qt最早是在Linux中随着KDE流行开来的,因此通常很多人说的Qt都指用于Linux/Unix的Qt/X11。一般命名以qt-x11-opensource-xxx!

QT/E -> Qtopia-core ->Qt-embedded-opensource(同一种鸟):Qt 在刚出现的时候,对于Linux和Unix系统,只有构建于Xlib之上的X11版。但随着Linux操作系统在嵌入式领 域的应用日渐广泛,Qt推出了嵌入式的版本Qt/E。由于嵌入式受限的硬件环境往往难以运行庞大的X服务器,Qt/E去掉了X Lib的依赖而直接工作于Frame Buffer上,因而效率更高,但它并不是Qt的子集,而应该是超集,部分机制(如QCOP等)不能用于Qt/X11中。

Qtopia(注意不是Qtopia-core,两者是不一样的):一般命名为qtopia-opensource,最 初是sourceforge.net上的一个开源项目,全称是Qt Palmtop Environment,是构建于Qt/E之上一个类似桌面系统的应用环境,包括了PDA和手机等掌上系统常见的功能如电话簿、日程表等。现在 Qtopia 已经成为了Trolltech的又一个主打产品,为基于Linux操作系统的PDA和手机提供了一个完整的图形环境。

值得特别注意的是在 版本4之前,Qt/E和Qtopia是不同的两套程序,Qt/E是基础类库,Qtopia是构建于Qt/E之上的一系列应用程序。但从版本4开 始,Trolltech将Qt/E并入到了Qtopia产品线中去了,并推出了新的Qtopia4。但实际上原来的Qt/E仍然作为基础类库,只是改名为 Qtopia Core了,也许又感觉Qtopia Core跟Qtopia容易让人搞混,所以又改名为qt-embedded-linux-opensource-linux/wince(QT也支持 Wince )。它作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用。而原来的Qtopia则被分成几层,核心的应用框架和插件系统被称为 Qtopia Platform,上层的应用程序则按照不同的目标用户分为不同的包,如Qtopai PDA,Qtopia Phone。
Qte的改名过程,Qte-->Qtopia Core-->Qt-embedded-linux-xxxx
Qtopia/QtEmbedded版本对应关系?
Qtopia1.7.0 / Qte 2.3.7
Qtopia2.1.1 / Qte 2.3.10
Qtopia2.1.2 / Qte 2.3.11
Qtopia2.2.0 / Qte 2.3.12 (包含在qtopia2.2源码包中)
qtopia 2的应用基于qte 2.3.x的
qtopia 4的应用基于qtopia core(相当于原来的qte) 4.x

http://hi.baidu.com/mehewen/item/680c142f4f40e90972863eb2
QT包后缀解析
1. 什么是X11?     
    X Window 系统的版本11,简称为X11。它是一个对网络透明的客户/服务器架构的图形显示系统。它支持应用程序在你的屏幕上绘制象素,线条,文字,图象等等。 X11 还包括一些其它的辅助的函数库,使得它可以容易地绘制用户界面,例如:按钮,文本输入区等等。
    X11是Unix事实上的图形系统标准。Linux、各种BSD和多数的商用Unix都采用它。类似CDE,KDE和GNOME等桌面环境都运行在它之上。
2. 什么是X86,什么是i386?
    X86对应32位系统,X64对应64位系统。
    x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,例如:i386, i586,奔腾(pentium)。
    由于早期intel的CPU编号都是如8086,80286来编号,这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合。
    X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的。
    i386是指intel发布的通用处理器类型,适合386,486,586,686的CPU。有些rpm包还区分了这些类型。
    IA32 : 32 bits Intel Architecture (32位带宽Intel构架)
    IA64 : 64 bits Intel Architecture (64位带宽Intel构架)
    i386 : Intel 386 ( 老的386机器,也泛指IA32体系的CPU)
    i486 : Intel 486
    i586 : Intel 586 ( Pentium ,K6 级别CPU )
    i686 : Intel 686 ( Pentium II, Pentium III , Pentim 4, K7 级别CPU )
    以上的86 也可以叫做 x86, 通称说 x86也是指 IA32构架CPU

QT 开发源代码包 版本介绍
    QT的版本比较多,容易搞混。现分别介绍:
    (1) Qt/X11 :指用于Linux/Unix的PC 版本。
  如:qt-x11-opensource-src-4.5.3.tar.gz,
  它是用于PC机linux平台的QT源码。它可以产生Qt开发工具,如designer等等,最重要的是可以得到qvfb(类似一个虚拟的仿真界面),嵌入式的开发有了qvfb,就可以不需要实际的开发板
(2) Qt Windows:指用于Windows的版本。
  如:qt-win-opensource-4.8.4-mingw.exe
  一般windows一直点next 就可以完成安装,安装后还需要做一下环境变量的设置
(3) qt-everywhere:指既可用于x86,也可用于ARM,只要在配置时加上不同的参数就可以。
  如qt-everywhere-opensource-src-4.7.3.tar.gz。
(4) Qt/Embedded:指专用于嵌入式的版本(比如ARM)。
  如 qt-embedded-linux-opensource-src-4.5.3.tar.gz是用于嵌入式ARM等的qt源码包。
  (5)Qt/Embedded和Qtopia Core
       从Qt4.1开始,Qt/Embedded改名为Qtopia Core,又从Qt4.4.1开始, Qtopia Core又改名为Qt for Embedded Linux。
       一般发行的源码包的名字叫做:qt-embeded-linux-xxxxxx。

搭建Qt开发平台 --  简介不涉及细节
首先需要的Qt版本有两个:
X-11 =====>qt-x11-opensource-src-x.x.x.tar.gz
嵌入式====>qt-embedded-linux-opensource-src-x.x.x.tar.bz2

1.  解压这两个qt包
a)        tar –jxvf qt-x11-opensource-src-x.x.x.tar.gz
b)        tar –jxvf qt-embedded-linux-opensource-src-x.x.x.tar.bz2
c)        cp qt-embedded-linux-opensource-src-x.x.x
qt-embedded-linux-opensource-src-x.x.x-x86       
d)        mv qt-embedded-linux-opensource-src-x.x.x qt-embedded-linux-opensource-src-x.x.x-arm
a)和b)解压缩包,(至于解压到哪里,这些是细节,这里简介就不说了)。
c)和d)就是将嵌入式的qt-embedded包 复制两份(先cp,后mv)
有两个复制:qt-embedded-linux-opensource-src-x.x.x-x86 和qt-embedded-linux-opensource-src-x.x.x-arm,

根据他们的名字可以知道前者是适合x86架构的,后者适合arm架构。当然这些适合的话 是相对于这些包已经进行了make。
为什么需要两个呢?(这是重点的重点!!! )
如果有开发板的话,可以只编译qt-embedded版本成arm架构的就可以了,
但是很多时候用qvfb(虚拟器)的话,开发会方便很多,所以多编译一个x86架构的也不错。


1)qt-x11也是适合x86结构的,这不是和qt-embedded重复了吗?
   答疑: qt-embedded版本只能在嵌入式板子上面运行,编译成x86架构的程序也只能在x86的嵌入式板子上跑。前面说过,我们需要qvfb来开发, 但是qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。所以关键就是配合qvfb 使用。

将qt-embedded编译成arm, 又是为什么呢?
  答疑: 最终的qt应用程序需要在arm架构上面运行,当然需要这方面的库,所以要编译成arm。
  总结:
        首先,第一步使用qt-x11提供的库和开发工具开发出qt应用程序,
  然后,第二步使用qt-embedded关于x86库和工具再次编译我们开发qt应用程序,这是所得到的可执行文件就可以在qvfb上运行了,
  最后,第三步使用qt-embeddedd的arm库再次编译就可以得到在arm上能运行的可执行程序。
  如果有开发板  ====第二步====可要可不要的(最好是要,有备无患)
  如果没有开发板====第三步====没必要,这样就不需要将qt-embedded编译成适合arm 架构的。

2. 编译源代码包

a) qt-x11=》
  ./configure -qvfb
  make
  cd tools/qvfb
        make
        cd ../..
   make install
        cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.3.2/bin

b) qt-embedded=》
1) x86包:        
  ./configure
   make
   make install
2) arm包:      
  ./configure –arch arm
   make
   make install
http://blog.chinaunix.net/u2/63379/showart_1330704.html
  
假设一切顺利,那么Qt嵌入式应用程序开发环境就搭建好了,当然我百分百相信对于一个初学者搭建的过程肯定不会顺顺利利,这其中涉及到很多很多细节比如环境变量设置等等的等等!写这个只是为了告诉你what,至于how就该靠自己了。
  在此感谢网上所有乐于共享的前辈。以上的大部分资料全部是网上转载的,由于转载次数多 实在找不到源链接,请原谅的copy!!!



出0入0汤圆

发表于 2014-4-25 20:18:32 | 显示全部楼层
顶楼主。

出0入0汤圆

发表于 2014-4-25 20:26:59 | 显示全部楼层
想说 虚拟机 有点头疼。最近亲戚开了个公司 叫云智科技有限公司  搞怎么虚拟机 云计算 桌面云 什么的 ,叫我去找个合作公司。自己什么都不懂,也不知要咋个搞,头晕中,有知道的给提个建议。

出0入0汤圆

发表于 2014-4-25 21:33:09 | 显示全部楼层
顶楼主一下

出0入0汤圆

发表于 2014-4-25 21:54:19 | 显示全部楼层
virtual box装不上增强软件和运气一点关系都没有。安装增强功能需要编译内核模块,所以依赖编译系统和内核头文件等,熟悉Linux的借助apt-get很容易就装好了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-4-25 22:32:35 | 显示全部楼层
dawanpi 发表于 2014-4-25 21:54
virtual box装不上增强软件和运气一点关系都没有。安装增强功能需要编译内核模块,所以依赖编译系统和内核 ...

大神!说老实话,我现在还没安装OK

VBOX 是用4.1.2  ,和ubuntu12.04 的

安装增强功能的时候,老是说kernel-headers 没有找到?

请问如何解决嗯?

log 显示
DKMS add complete
(Error! Your kernel headers for kernel 2.6.34-12-desktop cannot be found at)

出0入0汤圆

发表于 2014-4-25 22:35:15 | 显示全部楼层
呵呵,楼主还在纠节桌面的编译。。。现在都已经Qt5.0以上。

出0入0汤圆

 楼主| 发表于 2014-4-25 22:39:05 | 显示全部楼层
haffman1 发表于 2014-4-25 22:35
呵呵,楼主还在纠节桌面的编译。。。现在都已经Qt5.0以上。

是啊,我是不是一根筋过头了!!!!!
但是如果直接下载个run 过来安装是很容易, 问题是到时ARM板上的移植 如何实现呢???我还是没搞明白~~~~~

还有如果我是用相同版本的arm-linux-gcc, 在不同版本的QT 设计出来的GUI 能否在同一个硬件平台(arm-linux-gcc适合该平台)下运行?

出0入0汤圆

发表于 2014-4-25 23:04:51 | 显示全部楼层
suxilong 发表于 2014-4-25 22:39
是啊,我是不是一根筋过头了!!!!!
但是如果直接下载个run 过来安装是很容易, 问题是到时ARM板上的 ...

我是在windows下面开发、调试,然后把相关工程文件搬到linux下面,再执行qmake,make之类的,当然,要事先安装好交叉编译工具链,qt,我的最终是要在blackfin里面跑的,发现直接编译buildroot后,把工程文件放到生成的output里面的qt文件夹下的example里面进行qmake,make即可。

出0入0汤圆

发表于 2014-4-25 23:13:48 | 显示全部楼层
suxilong 发表于 2014-4-25 22:32
大神!说老实话,我现在还没安装OK

VBOX 是用4.1.2  ,和ubuntu12.04 的

两个办法,一个是去packages。ubuntu。com上去根据包的名字搜索,还可以直接在本地用apt-cache命令搜索
apt-cache search linux-headers

出0入0汤圆

发表于 2014-4-25 23:36:14 | 显示全部楼层
suxilong 发表于 2014-4-25 22:32
大神!说老实话,我现在还没安装OK

VBOX 是用4.1.2  ,和ubuntu12.04 的

可以的话两个都用最新版本

出100入101汤圆

发表于 2014-4-26 00:03:47 | 显示全部楼层
不错!!!

出0入0汤圆

发表于 2014-4-26 00:27:25 | 显示全部楼层
有点疑问,
“第二 Linux  关于Linux,因为这潭水不是非一般的深,我觉得是初学的,现在是,以后是,永远都是”
    啥意思?

出0入0汤圆

 楼主| 发表于 2014-4-26 08:41:48 | 显示全部楼层
kalo425 发表于 2014-4-26 00:27
有点疑问,
“第二 Linux  关于Linux,因为这潭水不是非一般的深,我觉得是初学的,现在是,以后是,永远都 ...

不是懂,没有啥可以共享

出0入0汤圆

发表于 2014-4-26 10:15:11 | 显示全部楼层
成长总是有个过程的,折腾下慢慢就清楚了.
善用google

出870入263汤圆

发表于 2014-4-27 21:19:42 | 显示全部楼层
很好的知识经验总结,侃得很好,有帮助。

出0入0汤圆

发表于 2014-4-28 21:09:22 | 显示全部楼层
mark                        
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 21:06

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表