网站首页 > 精选文章 正文
QT/Embedded 通过Qt API 与Linux I/O 设施直接交互,成为嵌入式linux 端口。同Qt/X11 相比,
QT/Embedded 很节省内存,其不需要一个X 服务器或是Xlib 库,它在底层摈弃了Xlib,采用 framebuffer
(帧缓存)作为底层图形接口。同时,将外部输入设备抽象为keyboard 和mouse 输入事件。
QT/Embedded 的应用程序可以直接写内核缓冲帧,这可避免开发者使用繁琐的Xlib/Server 系统。今天我就给大家演示如何配置编译 及测试QT/Embedded 环境。
1、将QT/Embedded 压缩包(/UP-Magic6410/SRC/gui/目录下)拷贝到新建立的目录下并解压
[root@localhost for_arm]# tar xjvf
/UP-Magic6410/SRC/gui/qt-embedded-linux-opensource-src-4.4.0.tar.bz2 -C
/home/uptech/QT4/for_arm/
这样在实验目录的for_arm 下产生解压后的
qt-embedded-linux-opensource-src-4.4.0 目录。所有QT/Embedded
环境源码都存放在此。
2、进入
qt-embedded-linux-opensource-src-4.4.0 目录执行configure 文件,配置QT/Embedded 环境
[root@localhost for_arm]# cd qt-embedded-linux-opensource-src-4.4.0/
[root@localhost qt-embedded-linux-opensource-src-4.4.0]# ./configure -embedded arm
-xplatform qws/linux-arm-g++ -nomake demos -nomake examples -no-stl -no-qt3support
-no-phonon -no-svg -no-webkit -no-openssl -no-nis -no-cups -no-iconv -no-pch -no-dbus
-no-separate-debug-info -depths 8,16 -fast -little-endian -qt-mouse-linuxtp
-qt-mouse-tslib -I$PWD/../tslib1.4-install/include -L$PWD/../tslib1.4-install/lib
-prefix /usr/local/Trolltech/Qt-embedded-4.4.0
其中-prefix 参数指定QT-X11 环境的安装目录;-qt-mouse-tslib 参数指定了该QT/Embedded 环境支持触摸屏
设备;-I 与-L 参数指定了触摸屏设备的头文件以及库文件路径,当然,两个参数的指定要与实际编译tslib 库
时候安装路径为准。./configure 配置选项过长,使用该命令时候请仔细检查不要写错。Configure 的其他具
体配置用户可以通过—help 命令查看:
[root@localhost qt-embedded-linux-opensource-src-4.4.0]# ./configure --help
在输出的许可证提示符下输入“yes”同意回车即可进入QT/Embedded 库的配置过程,注意yes 大小写及全称。
3、编译QT/Embedded 库
[root@localhost qt-embedded-linux-opensource-src-4.4.0]# make
由于QT 库环境的庞大体积,编译QT/Embedded 库环境时间比较长,具体时间因机器配置而异(大约2 个小时左
右)。
4、安装QT/Embedded 库
[root@localhost qt-embedded-linux-opensource-src-4.4.0]# make install
此时便会在/usr/local/目录下产生Trolltech/ Qt-embedded-4.4.0 目录。
测试触摸屏及 QT/E 程序
1、在上述实验的 NFS 共享目录/UP-Magic6410/下建立Trolltech 目录,后续的QT/Embedded 实验都是在此目
录下共享到ARM 设备端执行QT/E 程序的。因此我们需要在该目录下搭建好QT/E 的环境,也就是拷贝编译
好的QT/E 动态库以及tslib 环境到此目录下。
[root@localhost /]# cd /UP-Magic6410/
[root@localhost UP-Magic6410]# mkdir Trolltech
[root@localhost UP-Magic6410]# ls
DOC IMG SRC Trolltech install.sh readme.txt tmp
[root@localhost UP-Magic6410]#
2、将上述实验编译好的 QT/Embedded 库环境及tslib 环境拷贝到建立的NFS 目录Trolltech 中。
拷贝QT/Embedded 库环境
[root@localhost Trolltech]# cp /usr/local/Trolltech/Qt-embedded-4.4.0/
/UP-Magic6410/Trolltech/ -arf
[root@localhost Trolltech]# ls
Qt-embedded-4.4.0
3、 拷贝 tslib 环境
[root@localhost Trolltech]# cp /home/uptech/QT4/for_arm/tslib1.4-install/lib/*
/UP-Magic6410/Trolltech/Qt-embedded-4.4.0/lib/ -a
[root@localhost Trolltech]# cp /home/uptech/QT4/for_arm/tslib1.4-install/bin/*
/UP-Magic6410/Trolltech/Qt-embedded-4.4.0/bin/ -a
[root@localhost Trolltech]# cp /home/uptech/QT4/for_arm/tslib1.4-install/etc/
/UP-Magic6410/Trolltech/Qt-embedded-4.4.0/ -a
[root@localhost Trolltech]#
4、ARM 端挂载NFS 共享目录
启动UP-Magic6410 实验系统,连好网线、串口线。通过串口终端挂载宿主机实验目录。
[root@UP_6410 yaffs]# mountnfs 192.168.1.145:/UP-Magic6410 /mnt/nfs/
5、设置环境变量 (ARM 端)
进入QT/Embedded 实验NFS 共享目录Trolltech 中
[root@UP_6410 yaffs]# cd /mnt/nfs/Trolltech/Qt-embedded-4.4.0/
[root@UP_6410 Qt-embedded-4.4.0]# ls
bin include mkspecs translations
etc lib plugins
[root@UP_6410 Qt-embedded-4.4.0]#
根据此实验目录下的目录进行ARM 端环境变量设置,如下:
[root@UP_6410 Qt-embedded-4.4.0]# export QTDIR=$PWD
[root@UP_6410 Qt-embedded-4.4.0]# export LD_LIBRARY_PATH=$PWD/lib
[root@UP_6410 Qt-embedded-4.4.0]# export TSLIB_TSDEVICE=/dev/event1
[root@UP_6410 Qt-embedded-4.4.0]# export TSLIB_PLUGINDIR=$PWD/lib/ts
[root@UP_6410 Qt-embedded-4.4.0]# export TSLIB_CONSOLEDEVICE=none
[root@UP_6410 Qt-embedded-4.4.0]# export TSLIB_CONFFILE=$PWD/etc/ts.conf
[root@UP_6410 Qt-embedded-4.4.0]# export POINTERCAL_FILE=$PWD/etc/ts-calib.conf
[root@UP_6410 Qt-embedded-4.4.0]# export QWS_MOUSE_PROTO=tslib:/dev/event1
[root@UP_6410 Qt-embedded-4.4.0]# export TSLIB_CALIBFILE=$PWD/etc/ts-calib.conf
[root@UP_6410 Qt-embedded-4.4.0]# export QT_QWS_FONTDIR=$PWD/lib/fonts
[root@UP_6410 Qt-embedded-4.4.0]# export
6、执行触摸屏校准程序(在NFS 共享目录的Qt-embedded-4.4.0/bin/目录下):
[root@UP_6410 Qt-embedded-4.4.0]# ./bin/ts_calibrate
No raw modules loaded.
ts_config: No such file or directory
[root@UP_6410 Qt-embedded-4.4.0]#
如果出现如下错误提示:
Couldnt load module pthres
No raw modules loaded.
则更改ts.conf 配置文件(在在NFS 共享目录的Qt-embedded-4.4.0/etc 目录下)选择一个输入设备,当然也可
以在宿主机端
/UP-Magic6410/Trolltech/Qt-embedded-4.4.0/etc 目录下更改。
[root@UP_6410 Qt-embedded-4.4.0]# vi etc/ts.conf
内容如下:将module_raw input 一行前的“#”注释符去掉,且顶行写。
# Uncomment if you wish to use the linux input layer event interface
module_raw input
# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie
再次执行触摸屏校准程序即可,
[root@UP_6410 Qt-embedded-4.4.0]# ./bin/ts_calibrate
xres = 640, yres = 480
程序会自动存储坐标校准信息以便应用程序使用。此时如无错误则进入5 点触摸屏校准程序并存储配置文件。
还可以进行其他触摸屏测试程序ts_test、ts_print(与ts_calibrate 同目录下)等。
提示:由于UP-Magic6410 型设备出厂已经在系统后台运行了QPE 程序,因此会对本次实验运行TSLIB 或QT/E
程序有影响,因此应先杀死该QPE 后台进程。如:
在ARM 终端中使用ps 命令查看进程:
[root@UP_6410 yaffs]# ps
356 root 0 SW< [krfcommd]
385 root 3012 S syslogd -m 0 -L
387 root 3012 S klogd
425 root 2896 S -bash
432 root 2148 S /usr/local/sbin/vsftpd
435 root 13540 S /mnt/yaffs/Qtopia/bin/qpe
444 root 8108 R /mnt/yaffs/Qtopia/bin/qss
445 root 8120 R N /mnt/yaffs/Qtopia/bin/quicklauncher
446 root 3016 R ps
会看到QPE 进程号为435,使用killall 命令杀死该进程:
[root@UP_6410 yaffs]# killall qpe
[root@UP_6410 yaffs]#
即可。
夏天好热,希望大家天天都有好心情。
猜你喜欢
- 2025-09-04 安防方案系统图制作利器——浙江大华图标库元素版V1.0
- 2025-09-04 如何在Eclipse中搭建Zabbix源码的调试和开发环境
- 2025-09-04 【FFmpeg笔记】 从零开始之滤镜_ffmpeg入门教程
- 2025-09-04 Zabbix的智能运维体系建设实践,超详细Zabbix安装部署详情
- 2025-09-04 Linux 命令总结,建议收藏_linux命令大全chm版
- 2025-09-04 《ChangeFolderIcon v1.0.4:文件夹图标的定制化解决方案》
- 2025-09-04 谷歌浏览器 Chrome 100 正式版发布:图标有变
- 2025-09-04 轻松DIY一个专属个人网盘_轻松diy一个专属个人网盘下载
- 2025-09-04 乌克兰最高拉达通过法案,禁止在乌使用字母“Z”和“V”
- 2025-09-04 如何使用 Certbot 为域名配置永久免费的 HTTPS 证书
- 最近发表
-
- 安防方案系统图制作利器——浙江大华图标库元素版V1.0
- 如何在Eclipse中搭建Zabbix源码的调试和开发环境
- 【FFmpeg笔记】 从零开始之滤镜_ffmpeg入门教程
- Zabbix的智能运维体系建设实践,超详细Zabbix安装部署详情
- Linux 命令总结,建议收藏_linux命令大全chm版
- 《ChangeFolderIcon v1.0.4:文件夹图标的定制化解决方案》
- 谷歌浏览器 Chrome 100 正式版发布:图标有变
- 轻松DIY一个专属个人网盘_轻松diy一个专属个人网盘下载
- 精品博文配置编译 及测试QT/Embedded 环境
- 乌克兰最高拉达通过法案,禁止在乌使用字母“Z”和“V”
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)