本文同步发布于,更多系列教程,请见
我用的是openmoko的4.12的编译器,mini2440提供的4.3.2的编译器编译出来的程序有segment fault的问题。
下面说移植过程,下载源码包,然后解压,修改代码:
1、复制添加文件两个
[root@Linux qtopia-opensource-4.2.0]# cd src/libraries/qtopiabase/
[root@Linux qtopiabase]# cp custom-linux-cassiopeia-g++.h custom-linux-arm-g++.h
[root@Linux qtopiabase]# cp custom-linux-cassiopeia-g++.cpp custom-linux-arm-g++.cpp
2、修改代码:
-------------裁减Qtopia core的库 ---------------
# gedit qtopiacore/qconfig-qpe.h
首先注释掉关于鼠标光标的宏定义,让程序运行时,触摸屏中央有光标出现:
/*
#ifndef QT_NO_QWS_CURSOR
# define QT_NO_QWS_CURSOR
#endif
*/
/*
#ifndef QT_NO_QWS_MOUSE
# define QT_NO_QWS_MOUSE
#endif
#ifndef QT_NO_QWS_MOUSE_AUTO
# define QT_NO_QWS_MOUSE_AUTO
#endif
*/
[root@Linux qtopiacore]# cp qconfig-qpe.h qt/src/corelib/global/
-------------注释掉文件里的QT_NO_QWS_CURSOR的定义 -------------
# vi qtopiacore/qt/src/corelib/global/qfeatures.h
注释掉如下内容:
/*
#if !defined(QT_NO_QWS_CURSOR) && (defined(QT_NO_CURSOR))
#define QT_NO_QWS_CURSOR
#endif
*/
# vi qtopiacore/qt/src/corelib/global/qglobal.h
注释掉以下内容:
//# define QT_NO_QWS_CURSOR
3、配置
mkdir 同级文件夹build.并进入:
echo "yes" | ../qtopia-opensource-4.2.4/configure -edition
phone-xplatform linux-arm-g++ -arch arm -no-qvfb -release
-displaysize240x320 -no-modem -quicklaunch -defaultbuttons
phone -prefix /yellowater/qpe-no-bluetooth -no-drm -no-drm
-no-infrared -extra-qt-config "-qt-zlib-qt-gif -qt-libpng -qt-libmng
-qt-libjpeg" -extra-qtopiacore-config’-depths 16 -qt-mouse-linuxtp
-no-mouse-pc -no-mouse-bus -no-mouse-yopy-no-mouse-vr41xx
-no-mouse-qvfb -qt-mouse-tslib -I/nfs/opt/tslib1.4/include
-L/nfs/opt/tslib1.4/lib’ > log_cfg2>&1
注意:这里的-prefix项十分重要,它决定你的qtopia在哪里运行。-I,-L项要指向一个己编译的tslib1.4
如上配置,最终生成的image文件夹下所有内容,都要放在yellowater/qpe下,才能运行。
4、make & make install
然后build/image下面就是我们要的。把它们全拷进prefix指定的文件夹下(相对于你开发板)。就可以运行/yellowater/qpe/bin/qpe了。
我们生成的是一个phone版本,而且到了4的版本,也只有phone版本了。
下一期,将移植madplayer并做一个播放界面。
阅读(1748) | 评论(0) | 转发(1) |