分类: LINUX
2012-03-16 13:52:16
本文介绍了如何在x86个人PC上搭建Qt Embedded开发环境。文中的内容是个人理解,不对之处请指正。
Qt libraries 4.6.x以及以后版本有了一些变化。编译X11版本的还是Embedded Linux版本的,取决于
./configure步骤后面加入的参数。而只要下载一个档案就可以了。省去了一些下载的时间。但是编译的
时间没有节省,同样是很漫长。废话不说,进入正题。
宿主机:Fedora 11 i686
Embedded 平台:arm
需要下载的软件包:qt-everywhere-opensource-src-4.6.3.tar.gz,可以到这里下载:
在这里说一下Qt X11以及Qt/Embedded在开发环境中的关系:
其实如果是在不需要QVFb的支持下,做嵌入式GUI的开发,不一定非得要安装Qt X11。嵌入式Qt的应用程序,
是直接通过写入到帧缓冲区显示的,而不需要X11的支持,由于X11需要耗费比较多的内存资源,这样子就可
以节省很多内存空间。QVFb是一个X11的应用程序,为了开发以及调试的方便,QVFb提供了一个虚拟的帧缓
冲,这样子我们就可以在一般的PC的桌面环境下开发以及调试Qt for Embedded的应用程序。虚拟帧缓冲使
用了共享内存模拟帧缓冲,然后qvfb工具把帧缓冲的内容显示到窗口上面。下面./configure步骤中要加入
-qvfb参数就是这个原因了。
好了,现在明白了我们要安装的那几个东西的关系了:Qt Embedded是为了提供Embedded平台的开发工具
以及开发库,最终编译好了的应用程序可以拿到嵌入式板子上运行。Qt X11为我们提供了qvfb这个很好的工具
,为我们开发以及调试Qt Embedded应用程序提供了一个仿真的环境。当然,我们也可以利用Qt X11来开发运行
于一般PC桌面的应用程序。
1.编译以及安装Qt Embedded
假设所有的工作都在~执行。qt-everywhere-opensource-src-4.6.3.tar.gz也在~下面。
$ tar -zxvf qt-everywhere-opensource-src-4.6.3.tar.gz
$ cd qt-everywhere-opensource-src-4.6.3
$ ./configure -embedded x86 -qvfb -opensource
# 提示:可以使用./configure -embedded -help获取更多的帮助
# 漫长的等待......
# 终于可以看到gmake的提示了
$ gmake
# 这里会提示你安装的目录,也就是默认的/usr/local/Trolltech/QtEmbedded-4.6.3-arm
# 也是漫长的等待......
$ su -c 'gmake install'
# --------------------------------------------------------------------------------
# 到这里,Qt Embedded成功安装。
2.编译以及安装Qt X11
$ tar -zxvf qt-everywhere-opensource-src-4.6.3.tar.gz
$ cd qt-everywhere-opensource-src-4.6.3
$ ./configure
$ 漫长的等待......
# 提示:如果要重新配置,请运行gmake confclean,然后再./configure
$ gmake
$ su -c 'gmake install'
# --------------------------------------------------------------------------------
# 到这里,Qt X11基本的东西已经成功安装。
3.编译以及安装工具qvfb
$ cd qt-everywhere-opensource-src-4.6.3/tools/qvfb
$ gmake
# 然后可以看到qt-everywhere-opensource-src-4.6.3/bin/qvfb这个工具了。
$ su -c 'gmake install'
# 把qvfb工具安装到系统目录,即/usr/local/Trolltech/Qt-4.3.6/bin/qvfb
4.设置环境变量
$ vi ~/.bashrc
# 然后添加如下内容
export PATH=$PATH:/usr/local/Trolltech/QtEmbedded-4.6.3/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Trolltech/QtEmbedded-4.6.3/lib
5.测试以及使用qvfb
$ cd /usr/local/Trolltech/QtEmbedded-4.6.3/examples/qws/framebuffer
$ ./frambuffer
# 这时候可以看到屏幕上顺序显示red,green,blue三种颜色
# 在tty终端下测试的效果比较好
$ 随便选择一个应用程序测试一下
$ cd /usr/local/Trolltech/Qt-4.6.3/bin
$ ./qvfb &
# 这里可以看到qvfb工具运行了
$ cd /usr/local/Trolltech/QtEmbedded-4.6.3/demos/affine
$ ./affine -qws
# 截图如下:
-------------------------------------------------------------------------------------------------------------
编译过程中收集到了一个错误,如下:
/usr/bin/ld: cannot find -lXtst
collect2: ld returned 1 exit status
gmake: *** [../../bin/qvfb] Error 1
解决办法:
$ cd /usr/lib
$ ls | grep 'Xtst'
# 此时显示一个文件,比如我的显示
# /usr/lib/libXtst.so.6
# /usr/lib/libXtst.so.6.1.0
# 对当中的一个创建软连接就可以了
$ su -c 'ln -s libXtst.so.6 libXtst.so'
参考资料: