买了块立宇泰的ARMSYS2440开发板,板子提供的qt开发包是qt-embedded-2.3.7 qtopia-free-1.7.0 qt-x11-2.3.2,用这个版本的qt来写程序和不习惯,因为我一直都是在用qt-4.2.2在写程序,所以决定升级qt,到Trolltech的网站上看,最新的版本是qtopia-core-opensource-src-4.3.3,于是将其下载下来,解压到/root,形成/root/qtopia-core-opensource-src-4.3.3目录,
1、在中qtopia-core-opensource-src-4.3.3\src\gui\embedded\qmouselinuxtp_qws.h加入
#define QT_QWS_IPAQ
#define QT_QWS_IPAQ_RAW
2. 并在qmouselinuxtp_qws.cpp里把/dev/h3600_ts替换为自己板子的设备文件,我的板子的设备为/dev/h3600_tsraw,正好与qmouselinuxtp_qws.cpp中使用的设备中一致,就不用改了。
注意步骤2中如果只定义了#define QT_QWS_IPAQ则使用的是/dev/h3600_ts,如果两个都定义了则使用的是/dev/h3600_tsraw
3、新建一个专门用于编译的文件夹(为什这样做??^_^, 呵呵,直接在qtopia-core-opensource-src-4.3.3的目录下编译会包警告或者错误哦)
#makedir build
4、配置
#cd build
#../qtopia-core-opensource-src-4.3.3/configure -release -no-qvfb -xplatform qws/linux-arm-g -embedded arm -no-stl -plugin-sql-sqlite -no-qt3support -no-nis -no-cups -no-iconv -no-qdbus -no-freetype -depths 4,8,16,32 -qt-mouse-linuxtp
5、编译
#gmake
6、安装
#gmake install
qtopia-core-opensource-src-4.3.3将被安装到/usr/local/Trolltech/QtopiaCore-4.3.3-arm
7、测试
将/usr/local/Trolltech/QtopiaCore-4.3.3-arm全部拷到开发板的NFS启动目录下并形成nfs-share-dir/usr/local/Trolltech/QtopiaCore-4.3.3-arm路径。我的开发板的NFS启动目录为armsys2440/root,
所以我最终形成的目录是armsys2440/root/usr/local/Trolltech/QtopiaCore-4.3.3-arm
开发板从使用NFS文件系统启动,就可以看到在开发板的/usr/local/Trolltech/QtopiaCore-4.3.3-arm的东西了。在开发板上设置环境变量
#export set HOME=/root
#export set QTDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm
#export set QPEDIR=/usr/local/Trolltech/QtopiaCore-4.3.3-arm
#export set QWS_KEYBOARD="USB:/dev/input/event1"
#export set QWS_MOUSE_PROTO="LinuxTP:/dev/h3600_tsraw"
#export set PATH=$QPEDIR/bin:$PATH
#export set LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib
#cd /usr/local/Trolltech/QtopiaCore-4.3.3-arm/examples/mainwindows/application
#./application -qws
可以看到触摸屏上出现了一个窗口,触摸屏也能正常工作了(因为我的触摸屏已经用开发板自带的程序校正过了),但是却有一个鼠标指针,看起来很不舒服,有人知道怎样隐藏鼠标指针吗??能不能给我说下。
2008:05:03添加
经过实验发现鼠标指针可以通过QApplication类的setOverrideCursor(const QCursor &)方法来实现隐藏鼠标指针的目的,具体代码如下:
...
#include
...
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.setOverrideCursor(QCursor(Qt::BlankCursor));
...
}
注意:在步骤7中出现了无法打开libQtGui.so.4之类的错误的话请自己创建一个如连接就是了,如果是提示无法打开共享库,而有没说到底是那个库不能被打开的话,多半是gcc的库不齐,把交叉编译器的库全部考到lib下,或者在PC机上用arm-linux-string来看你缺的是什么库。
更多文章请点击查看:http://www.hzlitai.com.cn/article/ARM9-article/1-16.html
评论