请按以下具体步骤操作:
1、确定需要有的几个文件:
a)、 qtopia-core-opensource-src-2.1.1.tar.gz Qtopia库源码包
b)、交叉编译器是arm-2009q1,可执行文件是arm-none-linux-gnueabi-gcc(网上能找到,注意要设置好交叉编译器才可以进行后面的步骤)
c)、 qt的界面源程序 project_stu(这个是专门在开发板上用的,增加了只能在开发板上运行的代码)
d)、交叉编译好的视频播放器可执行程序mplayer (这个是用网上开源的mplayer播放器源码包经过交叉编译得到的)
e)、 qmake.conf文件(交叉编译qtopia时使用)
2、交叉编译Qtopia:
a)、解压缩qtopia-core-opensource-src-2.1.1.tar.gz,进到解压缩后得到的那个目录下,用qmake.conf替换此qtopia源码包目录下mkspecs/qws/linux-arm-g++目录中的qmake.conf
b)、在源码包根目录下,执行下面的命令(可以粘贴进去)
./configure -embedded arm -DQT_QLOCALE_USES_FCVT \
-qt-mouse-pc -qt-freetype -no-cups -no-nis -no-iconv \
-no-qdbus -qt-libjpeg -qt-libpng -qt-gif -qt-zlib \
-no-rpath -no-qt3support -no-largefile -no-accessibility \
-no-stl -no-libmng -little-endian -prefix /opt/QtPalmtop
c)、中间会有两次输入提示:
第一次提示你输入时,输入yes,回车
第二次提示输入时直接回车
configure完成
d)、输入sudo -s,输入root用户口令,然后输入make开始编译
e)、输入make install,qtopia库会自动安装到PC机的/opt/QtPalmtop下。
这个是PC机上交叉编译Qt程序时用到的库,同样这个库需要拷贝一份到开发板上的同名目录下,不过开发板上的/opt下没位置可以拷贝,需要先插上一片sd卡到开发板上,把卡格式化成EXT3文件系统格式,挂载sd卡到开发板/sdcard目录下(挂载是自动完成的,重启开发板就能识别sd卡并挂载成功),然后拷贝这个编译好的库到/sdcard目录下:
以NFS挂载开发板,假设nfs目录是pc机上的/home/akaedu/rootfs目录。
pc机上把库目录拷贝到nfs目录,执行 cp -a /opt/QtPalmtop /home/akaedu/rootfs
开发板上拷贝库到sd卡上,假设nfs挂载到了开发板的/mnt下,执行 mkdir -p /sdcard/opt;cp -a /mnt/QtPalmtop /sdcard/opt/
在开发板上执行mv /opt /opt_bak;ln -s /sdcard/opt /opt
f)、在开发板的/etc目录下,修改profile文件,在最后增加三行
export LD_LIBRARY_PATH=/opt/QtPalmtop/lib
export QWS_DISPLAY="LinuxFb:/dev/fb1"
export QWS_SIZE="800x480"
此时开发板上就有库可以执行Qt程序了。
3、交叉编译project_stu:
PC机上解压缩project_stu.tar.bz2,进到解压缩之后的project_stu目录下
执行/opt/QtPalmtop/bin/qmake -project
(如果Qt程序中使用了QTcpSocket类,有网络相关代码,需在此时增加一步,修改project_stu目录下的project_stu.pro文件,在最后增加一行 QT += network,这个可以不用加)
再执行/opt/QtPalmtop/bin/qmake
再执行make,最后在此目录中得到一个交叉编译后的可执行文件,与目录名相同,叫project_stu,此文件显示project_stu/pic目录下的jpg文件和project_stu目录下的theme1.png文件,所以不能单独拷贝此文件到开发板,而应该拷贝整个project_stu目录到开发板上,任意路径下均可,推荐拷贝到sd卡目录下。
4、重启开发板,在开发板上执行:
进到project_stu目录,执行./project_stu -qws -nomouse,正常的话,此时应该能在fb1这一层上显示Qt界面了。
5、下面要在fb0这一层上显示视频,fb0在下,fb1层在上,fb1中Qt界面的黑色部分是透明的,会显示fb0中的视频:
a)、把mplayer可执行程序拷贝到开发板上的/sdcard目录下
b)、在开发板/etc/init.d目录下修改rcS文件,在最后增加两行:
cd /sdcard/project_stu && ./project_stu -qws -nomouse &
cd /sdcard && ./mplayer -x 540 -y 350 (某一个开发板上的视频文件名)
c)、上面的视频文件需用视频处理工具把视频原始大小正好调整为540x350,否则交由mplayer来缩放的话,视频播放速度明显很卡,因为mplayer是软件解码的,缩放图像到播放器大小需要大量的CPU运算。视频文件尺寸大小调整工具windows下有很多,请在网上找找看。在windows上下载一个转换工具,安装并转换视频文件。
6、重启开发板,应该就可以看到期待的效果了:Qt和mplayer窗口重叠在一起执行。