Qt4.5.1触摸屏+tslib1.4移植全记录
tslib和QT4移植文档
tslib和QT4移植⽂档搭建嵌⼊式QT4开发环境1、PC环境:Vmware8.02操作系统为:ubuntu12.04;Gcc 版本是:4.6.3;交叉⼯具链是4.4.6 版本。
2、ubuntu下的QT4开发环境搭建:开发QT4 应⽤程序需要安装qt4库、头⽂件和qt开发⼯具(qmake、uic、moc等)。
基于ubuntu平台的QT4开发环境搭建⽅式⼀般有3种:(1)使⽤apt-get install XXX从ubuntu源服务器安装qt4开发⼯具:笔者即采⽤了这种⽅式sudo apt-get install libqt4-devsudo apt-get install qt4-dev-tools qt4-designer qt4-doc qt4-qtconfig qt4-demos \qt4-qmake libqt4-sql-mysql qdevelopsudo apt-get install qtcreatorUbuntu源服务器上提供的qt4的开发库和⼯具,可以⾃新⽴得软件管理器上搜索qt4的库和开发⼯具,选择安装。
(2)使⽤sdk开发⼯具包安装Qt从4.5版本之后提供了SDK安装包,可以从ftp:///doc/423945792.html/qtsdk/下载SDK安装包,SDK安装包就包括qt4开发所需要的动态库、头⽂件和开发⼯具。
其中还提供了qtcreatr集成开发环境,qtcreator是⼀个集开发、调试于⼀体的图像化的开发环境。
如:qt-sdk-linux-x86-opensource-2009.04.1.bin。
在终端上执⾏上⾯这个⽂件,会弹出安装导向对话框,根据对话框的提⽰安装即可。
(3)从源码编译安装从“ftp:///doc/423945792.html/qt/source/”下载qt-x11的源码,如下载qt-x11-opensource-src-4.5.3.tar.gz;3、交叉编译qt-embedded3.1安装tslibTslib是⼀个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应⽤提供了⼀个统⼀的接⼝。
交叉编译QT5后触摸屏TSLIB的问题
交叉编译QT5后触摸屏TSLIB的问题QT5.2,UBUNTU,在arm-linux-gcc 4.4.1(EABI)下编译。
TSLIB为1.4,目标板CPU为S3C2440编译过程:修改qtbase/mkspecs/linux-arm-gnueabi-g++下的qmake.conf 里的路径, 并添加:QT_QPA_DEFAULT_PLATFORM = linuxfbQMAKE_CFLAGS_RELEASE += -O2 -march=armv4tQMAKE_CXXFLAGS_RELEASE += -O2 -march=armv4t之后./configure -xplatform linux-arm-gnueabi-g++ -release -opensource -confirm-license -make libs --prefix $PWD/_install -no-c++11用生成的QMAKE在qtbase/src/plugins/genric/tls里面,qmake -o Makefile tslib.pro,make && make install编译结果运行QT应用时,提示:QTsLibMouseHandler "tslib" "/dev/input/event0"Couldnt load module pthresError configuring: No such file or directory触屏不能用,鼠标不能用。
提示This plugin does not support propagateSizeHints(),窗口无标题栏。
求救~~~~~附:环境变量设置export TSLIB_ROOT=/usr/localexport TSLIB_TSDEVICE=/dev/input/event0export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_FBDEVICE=/dev/fb0export TSLIB_CONSOLEDEVICE=noneexportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib export QTDIR=/opt/QT5_2export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/libexportPATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin:$QTDIR/bin export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins #:/usr/local/lib/tsexport QT_QPA_PLATFORM=linuxfb:tty=/dev/tty0export QT_QPA_FONTDIR=$QTDIR/lib/fontsexport LD_PRELOAD=$QTDIR/lib/preloadable_libiconv.soexport QT_QPA_GENERIC_PLUGINS=tslib:/dev/event0。
tslib移植(触摸屏驱动)说明文档
移植问题二:tslib1.4编译过程./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache# 设置目标机型,缓冲,安装路径./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/opt/tslib make# 如果目标路径没有权限,需要加 sudomake install可能遇到的错误In file included from /usr/include/fcntl.h:252:0,from /usr/include/sys/fcntl.h:1,from ts_calibrate.c:20:In function ‘open’,inlined from ‘main’ at ts_calibrate.c:227:11:/usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declare d with attribute error: open with O_CREAT in second argument needs 3 arguments In function ‘open’,inlined from ‘main’ at ts_calibrate.c:229:11:/usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declare d with attribute error: open with O_CREAT in second argument needs 3 arguments make[2]: *** [ts_calibrate.o] Error 1make[2]: Leaving directory `/home/ouyang/Downloads/tslib/tests'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/ouyang/Downloads/tslib'make: *** [all] Error 2gcc 新版本编译器对语法检查严格,在源文件 ./tests/ts_calibrate.c 中// 源文件// if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {// cal_fd = open (calfile, O_CREAT | O_RDWR);// } else {// cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR);// }// 需要更改成如下形式if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {cal_fd = open (calfile, O_CREAT | O_RDWR, 0777);} else {cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777); }保存后重新编译即可/zhandoushi1982/article/details/5149086。
Qt4.5.1触摸屏+tslib1.4移植全记录
Qt4.5.1触摸屏+tslib1.4移植全记录Qt4.5.1触摸屏+sqlite3 移植全记录主机系统:Debian 5.0主机编译器:gcc/g++为4.1.3交叉编译器:arm-linux-gcc/g++3.4.5-glibc-2.3.6软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gzqt-x11-opensource-src-4.5.1.tar.gztslib-1.4.tar.gz目标板:博创UP-TECH S24101. 安装X11的相关库文件和开发包在编译时会生成一些在主机上运行的工具,要用到X11的一些头文件、库,所以需要安装X11开发包。
#sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev#sudo mkdir -p /usr/X11R6/include#sudo cp -rf /usr/include/X11 /usr/X11R6/include(参考韦东山《嵌入式Linux应用开发完全手册》)2.安装交叉编译器arm-linux-gcc-3.4.5(1) 新建安装目录:#mkdir /usr/local/arm(2) 解压arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2复制在目录/usr/local/arm下,在终端中进行如下操作:#cd /usr/local/arm#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2等待解压完成。
(3) 导入环境变量export PATH=$PATH:/usr/local/arm/3.4.5/bin或者:编辑一个导入环境变量的脚本(方便以后使用):#vi ArmEnv1 #!/bin/sh2 export PATH=$PATH:/usr/local/arm/3.4.5/bin#chmod +x ArmEnv //增加可执行权限#arm-linux-gcc -v这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/3.4.5/bin:$PATH”(不推荐这种方式)。
QT4移植文档
前提要成移植tslib1.4之后。
Qt:qt-everywhere-opensource-src-4.6.2.tar.gz嵌入式平台:2410arm-linux-gcc:3.4.11、在/work下面建立QT4文件夹。
2、将qt-everywhere-opensource-src-4.6.2.tar.gz放在QT4下解压。
3、进入qt-everywhere-opensource-src-4.6.2文件夹。
4、./configure -prefix /usr/local/QtEmbedded-4.6.2-arm -opensource -confirm-license -release-shared -embedded arm -xplatform qws/linux-arm-g++ -depths 16,18,24 -fast -optimized-qmake -no-pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -little-endian -host-little-endian -no-qt3support -no-libtiff -no-libmng -no-opengl -no-mmx -no-sse -no-sse2 -no-3dnow -no-openssl -no-webkit -no-qvfb -no-phonon -no-nis -no-opengl -no-cups -no-glib -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -nomake examples -nomake tools -nomake docs -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib -D__ARM_ARCH_5TEJ__5、gmake可能出现以下错误第一种错误:/home/lijian/QT/source/qt-everywhere-opensource-src-4.6.2/src/gui/text/qfonteng ine_ft.cpp: In member function `bool QFontEngineFT::init(QFontEngine::FaceId, bool, QFontEngineFT::GlyphFormat)':/home/lijian/QT/source/qt-everywhere-opensource-src-4.6.2/src/gui/text/qfonteng ine_ft.cpp:696: warning: converting to `int' from `qreal'{standard input}: Assembler messages:{standard input}:778: Error: register or shift expression expected -- `orrr3,r2,lsl#16'{standard input}:789: Error: register or shift expression expected -- `orrr2,r3,lsl#16'{standard input}:7748: Error: register or shift expression expected -- `orrr3,r0,lsl#16'{standard input}:7761: Error: register or shift expression expected -- `orrr1,r0,lsl#16'make[1]: *** [.obj/release-shared-emb-arm/qfontengine_ft.o] 错误 1make[1]: Leaving directory`/home/lijian/QT/build/3.4.1gcc/qt-embedded-4.6.2/src/gui'make: *** [sub-gui-make_default-ordered] 错误 2解决办法:修改src/3rdparty/freetype/include/freetype/config/ftconfig.h文件的第330行:"orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */修改为:"orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */第二种错误:这个错误发生在最后编译example和demo的过程中,如果在configure的时候取消了example,则可以跳过。
MiniGUI3.0+tslib1.4移植过程
只支持 1.3.1 版本的 ttf 库:
注意:MiniGUI 的文档说只支持 1.3.1 版本的 ttf 库,不要把版本弄错了
[root@localhost jpeg-6b]# cd /root/cross/
[root@localhost cross]# tar zxvf freetype-1.3.1.tar.gz
注意:这里配置指向/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi 目录,会自动安 装在/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi / [include,lib] 目录下。
./configure CC=arm-none-linux-gnueabi-gcc --build=i686-pc-linux --target=arm-linux
--host=arm-linux
prefix=/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi
第四步:安装 jpeg 库
[root@localhost libpng-1.2.18]# cd /root/cross/
[root@localhost cross]# tar zxvf jpegsrc.v6b.tar.gz
[root@localhost cross]# cd jpeg-6b/
[root@localhost jpeg-6b]#
[include,lib] ,假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 等
tslib触摸屏校准调试
触摸屏校准注明:本文操作的基础是基于我的另一份QT移植文档,上面有关我的qt移植的详细说明,考虑到qt移植人人不一,顾因此对读者引起的不明或不合之处,望谅解,或查看我的另一份qt移植文档,在百度文库可下载。
以下操作的前提是:内核已加载触摸屏驱动QT移植成功Tslib安装成功要求:1.安装成功的tslib存放路径为:nfs挂载文件系统目录下的/usr/local/tslib2.校准生成的文件存放路径为:nfs挂载文件系统目录下的/etc/pointercal步骤:1.打开nfs挂载文件系统目录下/etc/profile文件在文件末尾添加环境变量:export QWS_MOUSE_PROTO=Tslib:/dev/input/event1 //指定设备,决定选择触摸屏,而非鼠标export QWS_DISPLAY=LinuxFb:/dev/fb0 //指定设备export QWS_DISPLAY="LinuxFb:mmWidth50:mmHeight130:0" //设置字体显示export QWS_SIZE=800x480 //设置屏幕大小保存关闭2.删除nfs挂载文件系统目录下/etc/pointercal文件(旧的校准文件)#rm pointercal3.连接开发板到主机,确保nfs挂载成功在终端上运行:cd /usr/local/tslibls./ts_calibrate //校准程序这时因该看到开发板显示屏上出现十字架光标。
手持触摸杆,依次点击出现的5的十字架光标,校验程序运行完毕,此时已在/etc下生成新的pointercal校准文件。
再在终端运行:./ts_test //测试程序同样在显示屏上出现光标,这是个测试程序,你可以用触摸杆点着光标并拖动,以测试触摸屏是否可用。
如无问题,则说明触摸屏已经可以正常使用。
说明:1.Tslib是用来去抖、校准用的,里面包含了一些触摸屏的配置文件,校准库等。
EPC-9600I-L用户手册_V1.00
2. 系统基本操作........................................................................................................... 5
开机和登录 ............................................................................................................... 5 2.1.1 启动选择 ........................................................................................................... 5 2.1.2 串口连接设置 ................................................................................................... 5 2.1.3 串口登录 ........................................................................................................... 7 2.1.4 SSH 远程登录 .................................................................................................. 7 2.2 关机........................................................................................................................... 8 2.3 Qt 演示程序 .............................................................................................................. 9 2.4 输入设备 ................................................................................................................... 9 2.4.1 触摸屏和 USB 鼠标 ......................................................................................... 9 2.4.2 USB 键盘 .......................................................................................................... 9 2.5 查看系统信息 ........................................................................................................... 9 2.6 系统设置 ................................................................................................................. 10 2.6.1 网络设置 ......................................................................................................... 10 2.6.2 系统时钟 ......................................................................................................... 11 2.7 文件传输 ................................................................................................................. 11 2.7.1 SSH 文件传输 ................................................................................................ 11 2.7.2 NFS 文件传输 ................................................................................................ 12 2.8 U 盘使用 ................................................................................................................. 13 2.9 TF 卡使用 ............................................................................................................... 13 2.10 音频播放 ................................................................................................................. 13 2.11 U-Boot 交互 ............................................................................................................ 13 2.12 LCD 待机设置 ........................................................................................................ 14 2.13 LCD 背光调节 ........................................................................................................ 14 2.14 ADC ........................................................................................................................ 14 2.15 串口测试 ................................................................................................................. 15
QT4编程及移植详细教程
QT4编程及移植(系统移植之3)一、搭建Qt-creator环境QT开发工具被诺基亚收购后,由诺基亚对齐进行维护和技术支持。
目前诺基亚已经开发出一套界面整洁功能强大的QT IDE开发环境——QT-creator。
由于大多数人仍习惯Windows系统下的软件开发和设计,一下将以QT-creator Windows版本环境作为介绍(当然IDE也有Linux版本)。
1.1下载并安装QT-creator从网上下载qt-sdk-win-opensource-2010.02.1.exe文件,并在Windows下将其安装好。
1.2新建工程打开Qt Creator,点击File->new file or project,弹出以下窗口:点击Qt4 Gui Application->OK,弹出以下窗口:输入工程名、选择保存路径,点击Next,弹出以下窗口:这里是选择第三方库的支持,我们这个工程不需要这些,直接点击Next,弹出以下窗口:在Base class中选择QWidget,表示窗口部件以QWidget为基类,然后点击Next,弹出以下窗口:然后点击Finish完成工程创建,创建好的工程如下:双击打开main.cpp,编写代码如下:#include <QtGui/QApplication>#include <QHBoxLayout>#include <QSlider>#include <QSpinBox>#include "widget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);//管理整个应用程序用到的资源QWidget *window = new QWidget;//创建一个QWidget,父窗口部件是QWidget window->setWindowTitle("Enter Your Age");//设置QWidget的标题QSpinBox *spinBox = new QSpinBox;//创建QSpinBoxQSlider *slider = new QSlider(Qt::Horizontal);//创建QSliderspinBox->setRange(0,130);slider->setRange(0,130);//以下两句关联信号和槽QObject::connect(spinBox,SIGNAL(valueChanged(int)),slider,SLOT(setValue(int)));//以下两句使同步显示QObject::connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));spinBox->setValue(35);//初始化//以下做布局处理QHBoxLayout *layout = new QHBoxLayout;//水平排列,从左到右layout->addWidget(spinBox);layout->addWidget(slider);window->setLayout(layout);//在窗口上安装布局管理器window->show();//让窗口显示return a.exec();//将应用程序的控制权传递给QT}点击Qt Creator左下角的运行按钮(即第一个绿色三角形):显示效果如下:到这里已经完成了一个QT工程。
tslib移植
fl2440触摸屏移植步骤逐步实现触摸屏校正程序虚拟机vmware 8.0Linux ubuntu 11.04tslib1.4 可以到这里下载:/detail/tongsean/4672488 首先要更新libtool工具包在ubuntu中端输入apt-get install libtool autoconf automake 更新自己的软件包。
以下是具体的实验移植步骤(全在解压出来的tslib目录下进行)第一步:./autogen.sh第二部:makir tslib./configure --prefix=/arm/tslib/tslib --host=arm-linux --target=arm-linuxmake出现错误:s_test.c:(.text+0x1e4): undefined reference to `rpl_malloc'解决办法:vi config.h注释掉#define malloc rpl_mallocmake install 此时在tslib/tslib目录下即可看到四个文件夹:bin include lib etc以下是在已经只做好的根文件系统下进行1.将上述已经只做好的tslib/tslib拷贝到根文件系统的usr/local/下2.进入到根文件系统的/usr/local/tslib/etc下vi ts.conf将#module_raw input 前面的#删除,并使module_raw input顶格,保存该文件3. 将根文件系统/usr/local/tslib/bin/ts_calibrate拷贝到/usr/bin下,#cp usr/local/tslib/bin/ts_calibrate usr/bin# chmod 777 usr/bin/ts_calibrate3.在根文件系统的etc/profile中添加如下内容:export TSLIB_ROOT=/usr/local/tslibexport TSLIB_TSDEVICE=/dev/event0export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.confexport TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0export LD_LIBRARY_PATH=/lib:$TSLIB_ROOT/libexport QWS_SIZE=320*240export QWS_MOUSE_PROTO=Tslib:/dev/event0export QWS_DISPLAY="LinuxFb:mmWidth35:mmHeight45:0"ts_calibrate&至此将只做好的根文件系统移植到开发板上,就会看到开发板的屏幕上会有屏幕校正的十字架。
mini2440 qt4 移植
mini2440 qt4 移植南台電子系謝政育侯安桑對mini2440進行了QT4.4.3的移植,到目前為止好像是成功了,不知道後面使用的時候會不會出現問題,還是先湊合著用吧。
由於mini2440的光碟裏自帶一個root_default.tgz根檔,因此省了很大一部分力氣自己去裁剪,但是也有很大的缺陷就是:本身就對內核不熟悉,現在跳過了這一步,就更加不理解了。
以後還是要補上來。
1.編譯tslib-1.4解壓到/home下#./autogen.sh#./configure --prefix=/home/duancp/mytslib/ --host=arm-linuxac_cv_func_malloc_0_nonnull=yes#make#make install-strip //生成瘦身應用程式和庫2.安裝arm-linux-gcc-3.4.1.tar.bz2在根目錄下解壓,解壓後的默認目錄在/usr/local/arm/3.4.1設置環境變數,運行命令:vi /etc/profile加入export PATH=/usr/local/arm/3.4.1/bin:$PATH3.編譯qt-embedded-linux-opensource-src-4.4.3.tar.gztar zxf qt-embedded-linux-opensource-src-4.4.3.tar.gzcd qt-embedded-linux-opensource-src-4.4.3(我的QT的安裝目錄設置為根目錄下的/minin2440)./configure -prefix /mini2440 -release -shared -fast -pch -no-qt3support -qt-sql-sqlite-no-libtiff -no-libmng -qt-libjpeg -qt-zlib -qt-libpng -qt-freetype -no-openssl -nomake examples -nomake demos -nomake tools -optimized-qmake -no-phonon -no-nis -no-opengl -no-cups -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xkb -no-sm -no-xinerama-no-xshape -no-separate-debug-info -xplatform qws/linux-arm-g++ -embedded arm -depths 16 -no-qvfb -qt-gfx-linuxfb -no-gfx-qvfb -no-kbd-qvfb -no-mouse-qvfb -qt-kbd-usb-confirm-license -qt-mouse-tslib -I/home/duancp/mytslib/include-L/home/duancp/mytslib/lib上面的紅色部分必須讓找前面的tslib的目錄設置,否則會出現“The tslib functionality test failed!”錯誤./makemake installcd example/qws/mousecalibtrationqmake &&make (生成mousecalibtration可執行檔,後面需要將其拷貝到根檔中)4.製作根文件我的工作目錄是在根檔下,首先將root_default.tgz拷貝到根目錄下,加壓,生成root_defaultcd /root/root_defaultmkdir tslibcd tslib為了方便,將編譯的tslib下的bin、etc、lib檔夾全部拷貝過來cp -a /home/duancp/mytslib/lib ./cp -a /home/duancp/mytslib/bin ./cp -a /home/duancp/mytslib/etc ./cd etcvi ts.conf將裏面的第二條語句(#module_raw inout)前面的“#”去掉,否則後面觸摸屏將不能使用cd ..mkdir mini2440cd mini2440因為我的flash有64M,為了方便,將QT4.4.3的lib檔夾全部拷貝過來,但是要刪除fonts內除了wenquanyi_120_50.qpf 之外的其他文件,否則太大cp -a /mini2440/lib ./rm -rf fontsmkdir fontscp -a /mini2440/lib/fonts/wenquanyi_120_50.qpf fonts將前面編譯的QT的觸摸屏自帶程式拷貝過來cp -a /*/example/qws/mousecalibtration/mousecalibtration ./cd /root解壓mkyaffsimage.tgz,得到mkyaffsimage可執行檔./mkyaffsimage root_default root.yaff2得到根檔root.yaff2,如果要看一下大小,可以執行ll root.yaff2 -h這樣可以將root.yaff2燒到板子上去了。
Qt移植学习之路 QT4.5.3至mini2440
Qt移植学习之路 QT4.5.3至mini2440(1)本文介绍的是Qt移植学习之路QT4.5.3至mini2440,终于成功移植QT 4.5.3至mini2440,并能运行QT自带的应用程序,总得来说还算很顺利,下面是我移植的全部过程。
首先,我交待一下我的开发环境:宿主机:Fedora9主机Gcc:gcc 版本 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC)交叉编译器:arm-linux-gcc-4.3.2 (友善光盘自带)开发板:mini2440(NAND 128M SDRAM 64M)移植步骤:1.准备源码包从ftp:///qt/source/ 下载:qt-embedded-linux-opensource-src-4.5.3.tar.gz和qt-x11-opensource-src-4.5.3.tar.gz前者是移植到开发板上运行的,后者是方便在X86机上开发应用程序,待一切调试成功再经交叉编译后下载到开发板上运行。
从网上下载tslib-1.4.tar.gz包,这包用于管理触摸屏,例如可用于它来校正触摸屏,并保存校正数据。
2.编译安装tslib-1.4把tslib-1.4 COPY到Fedora9的 /opt下,在Fedora9的终端下执行:1.#cd/tmp2.#tarzxvftslib-1.4.tar.gz――――――――(最后在/tmp下解压生成tslib)3.#cdtslib4.#./autogen.sh5.#./configure--prefix=/home/mytslib/--host=arm-linuxac_cv_func_malloc_0_nonnull=yes6.#make7.#makeinstall成功后可在/home下生成mytslib,进入mytslib可以看到有bin include lib etc 四个文件夹。
我们暂时先不理它,在接下来的移植过程中才用到这些文件夹。
移植触摸屏校正Tslib1.4
移植触摸屏校正Tslib1.4开发板:友善之臂mini2440-128M主机: VMware 7.1 + Fedora 9开发版内核:Linux 2.6.32.2交叉编译器:arm-linux-gcc-4.3.2Qt:qt-everywhere-opensource-src-4.6.3.tar.gz*************************************************************** *****移植触摸屏校正Tslib1.41,解压下载的tslib1.4,我的是在/tmp下tar xzvf tslib-1.4.tar.gz2.进入生成的目录/tmp/tslib,执行脚本文件./autogen.sh3,/tmp/tslib下执行configure./configure --prefix=/opt/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes经过一段时间编译,如果无错误,执行make install,安装后,tslib已经安装到/opt/tslib目录下4,修改/opt/tslib/etc/ts.conf去掉第二行的#,并同时删除空格,如果不去掉,测试时会出现段错误(Segmentation fault)module_raw有许多种,这里只使用input(即Linux的input子系统,设备文件名称为/dev/input/event0),其它的注释掉。
后面的几个module还没有深入了解,它们使用的库就在tslib/lib/ts中,最后三个模块的字面意思是“方差(滤波)”、“去抖动(去噪)”、“线性(坐标变换)”,对这些东西不了解,不发表意见。
5,在/nfs/rootfs/下创建软件目录/nfs/rootfs目录下执行:mkdir opt将/opt/下的tslib拷贝到/nfs/roots/opt下cp /opt/* /nfs/rootfs/opt6,修改开发板的环境变量,vi /mnt/profileexport TSLIB_ROOT=/opt/tslibexport TSLIB_TSDEVICE=/dev/input/event0(触摸屏设备节点文件)exportLD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH export TSLIB_FBDEVICE=/dev/fb0(framebuffer设备文件)export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts(tslib插件库目录)export TSLIB_CONSOLEDEVICE=none(tslib运行需要的控制台,这里是LCD屏幕,设定的控制台设备为none,默认为/dev/tty) export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf(tslib模块配置文件)export POINTERCAL_FILE=/etc/pointercal(告诉QTOPIA,pointercal文件在哪里)export TSLIB_CALIBFILE=/etc/pointercal(指定触摸屏校准文件pintercal的存放位置)export QWS_MOUSE_PROTO=TSLIB:/dev/input/event0(鼠标与触摸屏共存)7,进入/nfs/rootfs/opt/tslib/下进行第一次校正./ts_calibrate 比如:xres = 240, yres = 320Took 14 samples...Top left : X = 276 Y = 795Took 12 samples...Top right : X = 736 Y = 796Took 11 samples...Bot right : X = 735 Y = 248Took 7 samples...Bot left : X = 274 Y = 247Took 7 samples...Center : X = 505 Y = 524-33.156189 0.304019 -0.000832369.119629 0.000871 -0.401456Calibration constants: -2172924 19924 -54 24190624 57 -26 309 65536执行后屏幕上,依次出现5个点,依次点击进行校准,校准完毕后,在/etc下会产生pointercal文件,供其他用户使用,ts_calibrate 是一个应用程序,在屏幕上画几个按钮,将用户点击后从ts驱动获得的数据和屏上的坐标通过一套算法来获得校准的数据写到一个校准文件里./ts_print 将屏幕坐标打印出来,比如:1796351007.320859: 156 116 500 按下1796351007.355145: 156 116 0 抬起./ts_print_raw 将屏幕坐标的原始数据打印出来,比如:1796350964.530867: 216 865 1 按下1796350989.946831: 0 0 0 抬起./ts_test 检测一下校正的结果,屏幕上出现两个按钮,分别为,Drag时,光标随着手指移动,另一个Draw是在屏幕上画画屏幕最上方会出现二个按钮,分别为“Drag”、“Draw”,默认是第一个,因此,用触摸笔点击任何一处,十字光标便会到那里。
qt程序移植到arm开发板
qt程序移植到arm开发板1、安装交叉编译⼯具链arm-linux-gcc●复制arm-linux-gcc-4.4.3.tar.gz到/home/tools⽂件夹⾥●解压命令tar xvzf arm-linux-gcc-4.4.3.tar.gz -C / (解压⽂件到根⽬录下)注意以上命令必须要有-C⽽且是⼤写,后边有个空格也要注意。
注意查看解压的路径,将解压⽣成的⽂件移动到usr/local/arm⽬录下●vi /etc/profile●在⽂件的末尾加上PATH=/usr/local/arm/4.4.3/bin:$PATH●输⼊命令:source /etc/profile(使刚修改的⽂件⽴即⽣效)●查看arm-linux-gcc版本arm-linux-gcc -v注意:此⽅法只对当前登录⽤户有效,更换⽤户后修改当前登录⽤户/etc/profile即可2、tslib编译与安装tslib是电阻式触摸屏⽤于校准的⼀个软件库,是⼀个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应⽤提供了⼀个统⼀的接⼝。
因此这⾥先编译安装tslib,这样在后⾯编译Qt的时候才能打包编译进去。
●需要检查⼀下软件是否安装sudo apt-get install automakesudo apt-get install autogensudo apt-get install autoconf●确定以上⼯具都已经安装后,复制tslib-1.4.tar到/home/tools⽂件夹⾥tar -zxvf tslib-1.4.tar.gzcd tslib./autogen.sh./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslibmakemake install-prefix=/usr/local/tslib是指定安装路径,其实包括下⽂的安装配置,路径都可以不指定,默认就是安装到/usr/local/⽬录下若出现错误:configure.ac:25: error: possibly undefined macro: AC_DISABLE_STAT ICIf this token and others are legitimate, please use m4_pattern_al low.See the Autoconf documentation.configure.ac:26: error: possibly undefined macro: AC_ENABLE_SHARE Dconfigure.ac:27: error: possibly undefined macro: AC_LIBTOOL_DLOP ENconfigure.ac:28: error: possibly undefined macro: AC_PROG_LIBTOOL autoreconf: /usr/bin/autoconf failed with exit status: 1解决⽅法:apt-get install libtool3、Qt的交叉编译与安装和PC平台下的编译类似,通过运⾏./configure进⾏配置⽣成makefile⽂件,然后编译安装,只是因为是针对嵌⼊式平台需要进⾏⼀些针对性配置,这⾥⽣成⼀个⾃动配置⽂件,可以通过修改⽂件来⽅便的更改配置。
QT4移植过程
目录下的 qmake.conf 文件,在第 12 和 13 行的末尾加上库链接 -lts。
/include/freetype/config/下面的 ftconfig.h,在该文件的 330 行处修改,把%0.%2
关于 tslib 的移植过程就是这样子的,如果都成功了就会出现有液晶屏的校 准。错误的话可能意味着你要重新做一遍了。
QT 库的移植过程 ① 移植前的准备工作: 下载并解压源文件包 qt-everywhere-opensource-src-4.6.2.tar.gz, 进入到该目录 中。 ② 配置参数: (不怎么清楚是什么意思,所以这里只能按步骤列出来)
Байду номын сангаас
一步,通过命令 export 查看你当前的交叉编译环境。 � *apt-get install autoconf automake libtool (这个是安装 autoconf automake libtool 安装这三个工具,主要是为了下一步 执行./autogen.sh 时在当前目录下生成 configure 文件, 有些 Linux 系统中已经装了这 三个工具,我们可以在/usr/bin 下面找到这些工具) 。 � ./autogen.sh 执行它生成 configure 文件。 � echo "ac_cv_func_malloc_0_nonnull=yes" >$ARCH_tslib.cache
./configure -prefix /mini2440 -opensource -release -shared -fast -xplatform qws/linux-arm-g++ -embedded arm -no-javascript-jit -no-script -depths 16 -no-webkit -fast -no-qt3support -no-sql-sqlite -no-openssl -qt-mouse-tslib -I/home/tslib/include -L/home/tslib/lib
tslib移植(触摸屏驱动)说明文档
移植问题二:tslib1.4编译过程./autogen.shecho "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache# 设置目标机型,缓冲,安装路径./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=/opt/tslib make# 如果目标路径没有权限,需要加 sudomake install可能遇到的错误In file included from /usr/include/fcntl.h:252:0,from /usr/include/sys/fcntl.h:1,from ts_calibrate.c:20:In function ‘open’,inlined from ‘main’ at ts_calibrate.c:227:11:/usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declare d with attribute error: open with O_CREAT in second argument needs 3 arguments In function ‘open’,inlined from ‘main’ at ts_calibrate.c:229:11:/usr/include/bits/fcntl2.h:51:24: error: call to ‘__open_missing_mode’ declare d with attribute error: open with O_CREAT in second argument needs 3 arguments make[2]: *** [ts_calibrate.o] Error 1make[2]: Leaving directory `/home/ouyang/Downloads/tslib/tests'make[1]: *** [all-recursive] Error 1make[1]: Leaving directory `/home/ouyang/Downloads/tslib'make: *** [all] Error 2gcc 新版本编译器对语法检查严格,在源文件 ./tests/ts_calibrate.c 中// 源文件// if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {// cal_fd = open (calfile, O_CREAT | O_RDWR);// } else {// cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR);// }// 需要更改成如下形式if ((calfile = getenv("TSLIB_CALIBFILE")) != NULL) {cal_fd = open (calfile, O_CREAT | O_RDWR, 0777);} else {cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR, 0777);}保存后重新编译即可/zhandoushi1982/article/details/5149086教你如何用WORD文档(2012-06-27 192246)转载▼标签:杂谈1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同?答:分节,每节可以设置不同的页眉。
qt移植到开发板
qt移植到开发板⼀、准备⼯作:1、QT应⽤程序2、⼯具链---》交叉⼯具链⼀安装,就会有标准的c库3、扩展的第三⽅库(ARM)()触摸屏库(tslib.tar.gz)4、QT库⼆、使⽤交叉⼯具链编译ts库和QT库(这⾥默认为已编译好)tslib-1.4.tar.gzqt-everywhere-opensource-src-5.5.0.tar.gz三、将编译好的库放到开发板中1、将tslib中的内容放到/tslib(可以将整个tslib⽬录扔进去)2、将Qt-5.5.0-gec2015.11⽬录中的lib,include,plugins⽬录放到/opt/Qt-5.5.0-gec2015.11⽬录中四、交叉编译QT应⽤程序1、配置qt集成开发环境a、增加compiler tools-option-build&runb、增加QT versionc、增加kits(将编译qmake和arm-linux-g++绑定)d、添加kits五、设置开发板中的环境变量(可以将之前已有的类似的环境变量注释掉)export TSLIB_TSDEVICE=/dev/event0export TSLIB_FBDEVICE=/dev/fb0export TSLIB_CONFFILE=/tslib/etc/ts.confexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_PLUGINDIR=/tslib/lib/tsexport PATH=/tslib/bin:$PATHexport LD_LIBRARY_PATH=/tslib/lib:/lib:/usr/lib:$LD_LIBRARY_PATH--------------------------------------------export QTHOME=/opt/Qt-5.5.0-gec2015.11export QT_QPA_PLATFORM_PLUGIN_PATH=QTHOME/pluginsexport QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0export QT_QPA_FONTDIR=$QTHOME/lib/fontsexport QT_QPA_GENERIC_PLUGINS=tslib:$TSLIB_TSDEVICEexport LD_PRELOAD=/tslib/lib/libts.soexport LD_LIBRARY_PATH=$QTHOME/lib:$LD_LIBRARY_PATHexport PATH=$QTHOME/lib:$PATH六、将编译好的Qt应⽤程序下载到开发板中运⾏./hello。
tslib1.4移植(个人小结)
Tslib1.4移植(参照TX2440A的tslib移植)一、说明●tslib版本:tslib-1.4●交叉编译器版本:arm-linux-gcc 4.1.2●操作系统平台:Linux Red Hat 9.0●开发板平台:arm TX2440A二、移植1、学习光盘/源码包中tslib1.4源码包,解压,进入tslib目录,执行#tar xzvf tslib1.4.gz#./autogen.sh出现错误:possible undefined macro: AS_HELP_STRING可能是因为系统自带的autoconf工具里面没有定义这个宏,查看一下autoconf的版本#autoconf –V是2.57版的,在学习光盘/liunx工具平台有2.64版,复制解压,进入autoconf目录,执行#tar xzvf autoconf.gz#./configure又出现错误:no acceptable m4 could be found in $PATH原因是安装autoconf工具,需要GNU的m4工具,但是系统里没有这个工具,所以还要从网上下载,在/gnu/m4/找到m4-1.14.13.tar.bz2,下载完后,或者在学习光盘/linux工具平台中有,解压后进入m4-1.14.13目录,执行#./configure#make#make install安装完成后,再进入autoconf目录,执行#./configure#make#make install新安装的autoconf工具就把/usr/bin下的可执行程序覆盖了,然后执行#source /etc/profile使环境变量生效,再查看autoconf版本,确保是2.64版。
2、进入tslib目录,执行#./configure --prefix=/usr/local/tslib --host=arm-linux --target=arm-linux--enable-inputapi=no#make这时会出现一个错误:ts_test.o(.text 0x218): In function `main': undefined reference to `rpl_malloc'查看一下源码,发现是ac_cv_func_malloc_0_nonnull引起了,那我们需要建一个cache文件,来欺骗configure,让它不检查这一项,执行#echo "ac_cv_func_malloc_0_nonnull=yes" > mytslib.cache再执行#./configure --prefix=/usr/local/tslib --host=arm-linux --target=arm-linux--enable-inputapi=no --cache-file=mytslib.cache#make#make install这一步很重要。
qt-embedded-3.1.1tslib触摸屏校正 qte3移植 触摸屏支持 中文显示
qt-embedded-3.1.1 tslib触摸屏校正+qte3移植+触摸屏支持+中文显示qt-embedded-3.1.1,觉得应该做个总结第一步利用tslib-1.3生成校正文件:因为qt3在正式开始运行之前需要对触摸屏进行校验,qt3是通过读取/etc/pointercal文件里面的内容进行校正的,但是在此之前我的板子上并没有安装qt环境,更不用说有这个文件了,因此在开始移植qt之前,我需要先利用tslib对触摸屏进行校正以生成相应的校正文件并重新烧入文件系统中。
下面就是编译和使用tslib进行校正的过程过程1、编译cd tslib-1.3export CC=/usr/local/arm/3.3.2/bin/arm-linux-gcc //指定交叉编译器./autogen.sh //生成config文件export PATH=/usr/local/arm/3.3.2/bin:$PATHecho "ac_cv_func_malloc_0_nonnull=yes">arm-linux.cache./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no如果你触摸屏驱动程序支持ioctl操作,上面的configure操作中的--enable-inputapi=no你可以删除vi src/ts_read_raw.c //修改内容如下****************************************************在make之前,为了支持触摸屏,打开src/ts_read_raw.c文件,查看触摸屏驱动程序数据结构,看与ts_read_raw.c结构中的哪个一样,就将代码中的char*defaulttseventtype="UCB1x00"; 修改为自己板子上对应的驱动结构。
QT 4.5.2向2440版移植全过程,自己全程测试过了
QT 4.5.2向2440版移植全过程,自己全程测试过了开发环境操作系统: Vmware6.0 + Ubuntu 8.04。
交叉编译器:arm-linux-gcc-4.3.2目标板: mini2440 + NEC3.5寸屏1、下载源码包:在:ftp:///qt/source/下载qt-embedded-linux-opensource-src-4.5.2.tar.bz2qt-x11-opensource-src-4.5.2.tar.bz2在/u2/86708/showart_1924834.html上下载tslib1.4.tar.gz2、配置ubuntu 8.04编译环境安装g++: sudo apt-get g++安装编译X11用到的库:sudo apt-get libx11-dev libxext-dev安装libxtst-dev: sudo aptitude install libxtst-dev 否则编译qvfb出错。
3、编译及安装qt-x11-opensource-src-4.5.2qt-x11版本可以产生Qt开发工具,如designer、qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
tar xjvf qt-x11-opensource-src-4.5.2.tar.bz2cd qt-x11-opensource-src-4.5.2./configuremakemake install历经漫长的编译过程,默认安装在/usr/local/Trolltech/Qt-4.5.2下,编译完成后源程序不要删除,还有用。
4、编译配置QtEmbedded-4.5.2-x86版本A、解压root@hrixin-desktop:/work/qte# tar xjvf qt-embedded-linux-opensource-src-4.5.2.tar.bz2root@hrixin-desktop:/work/qte# mv qt-embedded-linux-opensource-src-4.5.2qt-embedded-linux-opensource-src-4.5.2-x86root@hrixin-desktop:/work/qte# cd qt-embedded-linux-opensource-src-4.5.2-x86B、配置编译:./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.2-x86 -embedded x86 -qvfbroot@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# makeC、安装到/usr/local/Trolltech/QtEmbedded-4.5.2-x86目录下:root@hrixin-desktop:/work/qte/qt-embedded-linux-opensource-src-4.5.2-x86# make installD、建立脚本文件:setenv_arm.sh,输入以下内容:export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/export PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin/:$PATHexportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib/:$LD_LIBRAR Y_PATHE、编译x86版QT应用程序前,先执行此脚本文件:root@hrixin-desktop:/usr/local/Trolltech/QtEmbedded-4.5.2-x86# source setenv-x86.sh5、编译安装tslib1.4A、安装编译过程需用到的程序root@hrixin-desktop:/home/hrixin# apt-get install autoconf(或autoconf2.13) root@hrixin-desktop:/home/hrixin# apt-get install automakeroot@hrixin-desktop:/home/hrixin# apt-get install libtoolB、配置编译root@hrixin-desktop:/work/qt# tar xzvf tslib-1.4.tar.gzroot@hrixin-desktop:/work/qt# cd tslib生成./configureroot@hrixin-desktop:/work/qt/tslib# source autogen.shroot@hrixin-desktop:/work/qt/tslib# ./configure --prefix=/usr/local/tslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yesroot@hrixin-desktop:/work/qt/tslib# makeC、安装root@hrixin-desktop:/work/qt/tslib# make install-strip //生成瘦身应用程序和库打包root@hrixin-desktop:/usr/local# tar czvf tslib.tar.gz tslibD、复制到NFS文件系统/usr/local目录下解压root@hrixin-desktop:/work/root_qtopia/usr/local# tar xzvf tslib.tar.gzE、设置环境变量,校准触摸屏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Qt4.5.1触摸屏+sqlite3 移植全记录主机系统:Debian 5.0主机编译器:gcc/g++为4.1.3交叉编译器:arm-linux-gcc/g++3.4.5-glibc-2.3.6软件资源:qt-embedded-linux-opensource-src-4.5.1.tar.gzqt-x11-opensource-src-4.5.1.tar.gztslib-1.4.tar.gz目标板:博创UP-TECH S24101. 安装X11的相关库文件和开发包在编译时会生成一些在主机上运行的工具,要用到X11的一些头文件、库,所以需要安装X11开发包。
#sudo apt-get -y install x-dev libx11-dev xlibs-static-dev x11proto-xext-dev libxext-dev libqt3-mt-dev#sudo mkdir -p /usr/X11R6/include#sudo cp -rf /usr/include/X11 /usr/X11R6/include(参考韦东山《嵌入式Linux应用开发完全手册》)2.安装交叉编译器arm-linux-gcc-3.4.5(1) 新建安装目录:#mkdir /usr/local/arm(2) 解压arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2把arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2复制在目录/usr/local/arm下,在终端中进行如下操作:#cd /usr/local/arm#tar jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2等待解压完成。
(3) 导入环境变量export PATH=$PATH:/usr/local/arm/3.4.5/bin或者:编辑一个导入环境变量的脚本(方便以后使用):#vi ArmEnv1 #!/bin/sh2 export PATH=$PATH:/usr/local/arm/3.4.5/bin#chmod +x ArmEnv //增加可执行权限#arm-linux-gcc -v这样就把交叉编译器的地址变量设置好了,但这样设置路径变量的方法只在此终端中生效,对其他的终端无效,若要设置对所有用户所有终端都有效的路径变量,在/etc/profile 中最后一行添加“export PATH=/usr/local/arm/3.4.5/bin:$PATH”(不推荐这种方式)。
3.编译安装qt-x11-opensource-src-4.5.1qt-x11版本可以产生Qt开发工具,如designer、lingust等,最重要的是可以得到qvfb,嵌入式的开发有了qvfb,就可以不需要实际的开发板,也可以开发Qt应程序。
qt-embedded 版本就是专门用于嵌入式方面的版本。
将qt-x11-opensource-src-4.5.1.tar.gz复制到/root/local/qt目录下,进行解压,在终端中进行如下操作:#cd /root/local/qt#tar zxvf qt-x11-opensource-src-4.5.1.tar.gz解压完成后,得到/root/local/qt/qt-x11-opensource-src-4.5.1目录。
下面就开始进行编译了。
进入/root/local/qt/qt-x11-opensource-src-4.5.1目录,进行编译安装。
在终端中进行如下操作:#./configure –qvfb#make#cd tools/qvfb#make#cd ../..#make install经过相当长的时间完成后,会在/usr/local目录下生成一个Trolltech目录,形成/usr/local/Trolltech目录,这是qt-x11-opensource-src-4.5.1安装后所在的目录,进入/usr/local/Trolltech会看到一个Qt-4.5.1的目录,将/root/local/qt/qt-x11-opensource-src-4.5.1/tools/qvfb目录下的qvfb相关文件拷贝到/usr/local/Trolltech/Qt-4.5.1/bin目录下,在终端中操作(确定当前目录是/root/local/qt/qt-x11-opensource-src-4.5.1)。
#cp tools/qvfb/qvfb* /usr/local/Trolltech/Qt-4.5.1/bin至此,qt-x11-opensource-src-4.5.1就编译安装成功了你就可以使用/usr/local/Trolltech/Qt-4.5.1下的Qt进行编程开发了。
===============================================================================这里,qt-embedded有两个复制:qt-embedded-linux-opensource-src-4.5.1-x86和qt-embedded-linux-opensource-src-4.5.1-arm,根据他们的名字可以知道前者是适合x86架构的,后者适合arm架构为什么需要两个呢?如果有开发板的话,可以只编译qt-embedded 版本成arm架构的就可以了,但是很多时候用qvfb的话,开发会方便很多,所以多编译一个x86架构的也不错。
这里是否有些疑问,qt-x11也是适合x86结构的,这不是和qt-embedded重复了吗?答案是这样的,qt-embedded版本只能在嵌入式板子上面运行,编译成x86架构的程序也只能在x86的嵌入式板子上跑(这里咱们用的PC机其实是也可以看成嵌入式开发板只不过它是x86架构的)。
前面说过,我们需要qvfb来开发,但是qvfb只能执行x86架构的应用程序,所以需要让qt-embedded生成关于x86的库和其他文件。
而将qt-embedded编译成arm,又是为什么呢?道理很简单,我最终的qt应用程序需要在arm 架构上面运行,当然需要这方面的库,所以编译成arm也就顺理成章了。
好了,现在简单的总结一下,首先,使用qt-x11提供的库和开发工具开发出qt应用程序,然后使用qt-embedded关于x86库和工具再次编译我们开发qt应用程序,这是所得到的可执行文件就可以在qvfb上运行了,最后,使用qt-embeddedd的arm库再次编译就可以得到在arm 上能运行的可执行程序。
很明显,如果有开发板,第二步是可要可不要的(最好是要),如果没有开发板的话,第三步也就没必要了,这样就不需要将qt-embedded编译成适合arm 架构的。
4.编译配置QtEmbedded-4.5.1-x86版本解压qt-embedded-linux-opensource-src-4.5.1.tar.bz2在路径/root/local/qt路径下# tar xjvf qt-embedded-linux-opensource-src-4.5.1.tar.bz2修改解压后的文件夹名称#mv qt-embedded-linux-opensource-src-4.5.1 qt-embedded-linux-opensource-src-4.5.1-x86进入/root/local/qt/qt-x11-opensource-src-4.5.1-x86目录,进行编译安装。
在终端中进行如下操作:#cd /root/local/qt/qt-x11-opensource-src-4.5.1-x86./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.1-x86 -embedded x86 –qvfb#make(或windowns系统下gmake)#make install(或gmake install)OK,QtEmbedded-4.5.1-x86就编译好了。
在需要x86版本QT编译时建立环境变量:export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.1-x86/export PATH=/usr/local/Trolltech/QtEmbedded-4.5.1-x86/bin/:$PATHexportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.21-x86/lib/:$LD_LIBRARY_PAT H这里也写成脚本:#vi setX86env1 #!/bin/sh2 export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.1-x86/3 export PATH=/usr/local/Trolltech/QtEmbedded-4.5.1-x86/bin:$PATH4exportLD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.1-x86/lib/:$LD_LI BRARY_PATH记得加上执行权限。
如果要添加触摸屏支持还需要安装tslib,现在最高版本为1.4(笔者开发时)。
下面介绍一下tslib1.4编译安装过程。
5.编译安装tslib1.4安装编译过程需用到的程序# apt-get install autoconf(或autoconf2.13)# apt-get install automake# apt-get install libtool将tslib1.4解压到/home下#./autogen.sh#./configure --prefix=/home/zyx/project/mytslib/ --host=arm-linux ac_cv_func_malloc_0_nonnull=yes#make#make install-strip //生成瘦身应用程序和库注意:/home/zyx/project/mytslib/为tslib1.4安装目录在装QtEmbedded-4.5.1-arm 版本时需要用到此目录,打包mytslib。
# tar czvf mytslib.tar.gz mytslib下载到开发板上/usr/local目录解压。
#tar xzvf mytslib.tar.gz设置环境变量,校准触摸屏。
修改开发板上创建/bin/ts.sh文件。
#!/bin/shexport QTDIR=/usr/local/Qtembedded-4.5.1export QPEDIR=/usr/local/Qtembedded-4.5.1export PATH=$PATH:$QTDIR/binexport TSLIB_ROOT=/usr/local/tslib //tslib主目录export TSLIB_TSDEVICE=/dev/event0 //触摸屏设备节点export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf //触摸屏配置文件export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts //触摸屏在进行AD转换时用到的插件export TSLIB_CALIBFILE=/etc/pointercal //生成的校验文件存放目录export TSLIB_FBDEVICE=/dev/fb0 //触摸屏framebuff设备节点export QWS_SIZE=640x480 //根据自己触摸屏大小进行设置,这条也可不加export QWS_DISPLAY="LinuxFb:mmWidth100:mmHeight130:0"//如果不加这条会出现触摸屏字体很小的现象(不管在程序中设置多大的字体)export LD_LIBRARY_PATH=$QPEDIR/lib:$TSLIB_ROOT/lib:$LD_LIBRARY_PATHexport QWS_MOUSE_PROTO="Tslib:/dev/event0"export TSLIB_CONSOLEDEVICE=noneexport QT_QWS_FONTDIR=$QPEDIR/lib/fonts //设置字体,否则程序显示乱码export QT_PLUGIN_PATH=$QTDIR/plugins/注意:(1) 上面这些设置一定要仔细写,否则会出现这样那样的问题,笔者曾出现露掉字体问题。