准备工作:
1.安装arm-linux-g++编译器,并设置好环境变量,我的arm-linux-g++版本是3.4.1,qtopia-core- 4.3.3的编译需要3.4以上的arm-linux-g++
2.下载qtopia-core-opensource-src-4.3.3,并解压到用户主目录, 其最终目录 /home/lpzgbd/qtopia-core-opensource-src-4.3.3/mkspecs
3.进入/home/lpzgbd/qtopia-core-opensource-src-4.3.3/mkspecs目录,这里要创建linux-arm-g++目录,并复制linux-g++下的文件到 linux-arm-g++下,否则以下的./configure的时候会出错
cd /home/lpzgbd/qtopia-core-opensource-src-4.3.3/mkspecs
cp -rf linux-g++ linux-arm-g++
编译与安装:
./configure -v -little-endian -embedded arm
#这里按照有些低版本的资料所说的,开始时候加上了-qvfb选项,后来发现加不加这个选项其结果都要生成qvfb,仔细看了configure的help,发现里面根本就没有这个选项
make
make install
将程序安装到/usr/local/Trolltech/QtopiaCore-4.3.3
启动:
我的NFS目录是/opt/FriendlyARM/QQ2440/root_nfs, 将/usr/local/Trolltech/QtopiaCore-4.3.3复制到root_nfs下
修改板根文件系统的/etc/init.d/rcS ,在最后加入以下命令
/bin/qtopia &
/bin/qtopia文件内容:
#!/bin/sh
export HOME=/root
export QTDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm
export QPEDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm
export KDEDIR=/opt/kde
export QWS_KEYBOARD="USB:/dev/input/event1"
export QWS_MOUSE_PROTO="TPanel:/dev/input/ts0"
export PATH=$QPEDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib
然后通过NFS启动系统,export了一下,发现环境变量并不像 /bin/qtopia文件所设置的那样,暂时还没找到原因.
做以下测试:
cd /usr/local/Trolltech/QtopiaCore-4.3.3/examples/mainwindow/application
./application -qws
在开发板上出现图形画面,显示正常.但是还有个问题,触摸屏的响应不对,其点击位置和鼠标位置偏差相差多,甚至上小颠倒.有待解决..
补充知识(来自互联网):
Qt/Embedded的底层图形引擎基于framebuffer,framebuffer出现在2.2.x以上内核的版本当中的一种驱动程序接口。这种接口采用mmap系统调用,将显示设备抽象为帧缓冲区。用户可以将它看成是显示内存的一个映象,将其映射到进程地址空间之后,就可以直接进行读写操作了,而写操作可以立即反映在屏幕上。framebuffer驱动程序[1]是最重要的驱动程序之一,正是这个驱动程序才能使系统屏幕显示内容。其实现分为两个方面:一是对LCD及其相关部件的初始化,包括画面缓冲区的创建和对DMA通道的设置;二是对画面缓冲区的读写,具体到代码为read、write等系统调用接口。
Qt/Embedded直接写入帧缓冲,在宿主机上则是通过qvfb(vituralframebuffer)来模拟帧缓冲。qvfb是X窗口用来运行和测试Qtopia应用程序的系统程序,允许我们在桌面及其上开发Qt嵌入式程序,而不需要在命令台和X11之间来回切换。qvfb使用了共享存储区域(虚拟的帧缓冲)来模拟帧缓冲并且在一个窗口中(qvfb)模拟一个应用来显示帧缓冲,显示的区域被周期性的改变和更新。通过指定显示设备的宽度和颜色深度,虚拟出来的缓冲帧和物理的显示设备在每个像素上保持一致。这样我们在每次调试应用时不需要总是刷新嵌入式设备的FLASH存储空间,从而加速了应用的编译、连接和运行周期。
总结:
这次用了很久的时间才弄出来,其原因主要是一开始太急躁了.参照网上低版本的方法,结果没有成功.后来自己静下心仔细研究了一下configure并思考问题所在,最终解决问题
阅读(3788) | 评论(7) | 转发(0) |