tslib-1.4 和 arm版QT配置编译过程
来源:互联网 发布:隐藏手机号码软件 编辑:程序博客网 时间:2024/04/28 19:23
最近交叉编译了tslib-1.4,把主要过程和要注意的地方写下来。
1-./autogen.sh
2-echo ac_cv_func_malloc_0_nonnull=yes>$ARCH-linux.cache
3-./configure --host=$ARCH-linux --prefix=/usr/local --cache-file=$ARCH-linux.cache --enable-inputapi=no
--enable-inputapi=no:看你的触摸屏驱动是否支持ioctl操作,如果支持就不用写上,不支持就要添上,如果不添加会有
ts_open:Inappropriate ioctol for device
ts_open: No such file or directory
等错误(网上别人的文档是这么说的,我没有试过不加这个参数会怎样,感兴趣的试一下)
4-编译并安装后会在/usr/local(可以随意指定,但是最好要和你的开发板的路径相同,我试过一次不同时,运行./ts_calibrate,会报not found的错误)下有bin,etc,include,lib,在你的开发板上的相同路径建立这些文件夹,并把关于tslib的相关东西考到这些文件内。
5-/etc/ts.conf配置
module_raw input #这句一定要
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
6-在你的开发板的/etc/profile文件里添加运行tslib的环境变量(一定要放到/etc/profile,我放到/etc/init.d/rcS里就没有作用,愿因是export只能在当前shell和它的子shell有用,不能影响登录的shell)
# /etc/profile
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/arm/X11R6/bin
export PATH
export TSLIB_ROOT=/usr/local
export TSLIB_TSDEVICE=/dev/event0(你的开发板dev下的触摸屏设备节点文件)
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib(这句我注释掉的原因是:有一种说法是使用 LD_LIBRARY_PATH这样设置不安全,我的做法是把路径添加到/etc/ld.so.conf文件中,然后执行ldconfig命令,这样就可以了。ldconfig在你的交叉编译工具里就有)
这样大概就差不多了,运行./ts_calibrate如果还提示ts_open: No such file or directory,用env命令看一下,当前系统是否有你设置的tslib环境变量,
没有的话会提示这个错误的,我在第一次设置/etc/profile文件就没有好使,修改了一下,重启系统就好用了。
运行./ts_calibrate进行触摸屏校准,再运行./ts_test测试效果
将tslib打包进Qt
进入源码目录
./configure -embedded arm -xplatform qws/linux-arm-g++ -qt-sql-sqlite -no-qt3support -depths 16 -qt-mouse-tslib -I/usr/local/include -L/usr/local/lib -nomake demos -nomake examples
make
make install
期间遇到好多问题,参考了一些列文章
感谢万能的google,大部分人都能从中找到答案,走向了make之路。但是也有人试了别人的方法都不成功,成了未解之谜。
其实有两个方法,能让我们更深入一点看到我们我们这些错误从何而来,从而帮助我们去自己解决问题。
1。 在./configure 的选项里加上 -verbose选项,出错信息会更丰富,而不是没头没脑的来一句测试失败了
2。 还有个方法就是根据提示的出错信息,去$QTDIR/config.test目录下去找对应的测试例子,因为单独编译,这样你就把问题大大的缩小了,找到问题的概率也变大了。
昨天在本站论坛就 有朋友碰到“The tslib functionality test failed!”的问题,最后通过测试config.test/unix/tslib目录下的小例子(这些小例子正是./configure会调用测试, 给出正确或出错信息的。)最后发现是版本不兼容的原因。
其实还有一个方法,去读./configure文件,这才是真正的万能钥匙。 刚开始你可能漫无头绪,其实加些打印(如果是bash写的,就用echo;如果是perl写的,就用print),过一阵之后,你会发现自己几乎解决绝大部分问题。
这是QTCute里面的一段文字,对我们真的很有启发
参考的网站资料:
1.华清远见:http://www.embedu.org/Column/Column97.htm
2.CuteQt:http://www.cuteqt.com/blog/?tag=%E8%B0%83%E8%AF%95
3.QtForm.org:http://www.qtforum.org/index.php?page=Thread&postID=96421&s=1139c1ca29512d3637ef4ca64d15e0e6863c8c1c#post96421
4.csdn博客:http://blog.csdn.net/chen2qiao/archive/2009/09/14/4550505.aspx
遇到的问题和解决:
(1)
ScreenOptionsMasterPrefs.cpp:148: 错误: 显式特例化不能有存储类型
ScreenOptionsMasterPrefs.cpp:148: error: explicit template specialization cannot have a storage class
错误:显式特例化不能有存储类型
但是任何一个用低版本gcc写的软件 ,在用高版本gcc编译安装的时候出现错误 ,都可以通过修改源码改正 错误
把那个static 去掉,,,
#模板类中,如果模板那个参数类型已经指定(在函数声明实现的时候),必须把声明和实现放在一个文件中,这个时候把函数声明为static会冲突
#如果是一个一般的模板类,声明和定义可以分开,这个是到链接时候才知道类型,把函数声明为static不冲突
130行 static void MovePref<bool>( int &iSel, bool bToSel, const ConfOption *pConfOption )
改为 void MovePref<bool>( int &iSel, bool bToSel, const ConfOption *pConfOption )
(2) (3) 感谢: http://blog.csdn.net/maidisula/archive/2009/07/23/4373067.aspx http://hi.baidu.com/a263238386/blog/item/95b03424bec1b1398644f9e5.html
configure.ac error possibly undefined macro AS_HELP_STRING
这个是编译 tslib1.4的错误
意思是,将宏AS_HELP_STRING改为 宏AC_HELP_STRING
./hello -qws
Error: QWSTslibMouseHandlerPrivate: ts_open() failed with error: 'No such file or dire'
add:export QWS_MOUSE_PROTO=tslib:/dev/event0
- tslib-1.4 和 arm版QT配置编译过程
- arm平台tslib的编译与qte源代码包配置中的-qt-mouse-tslib
- arm平台tslib的编译与qte源代码包配置中的-qt-mouse-tslib
- arm平台tslib的编译与Qte源代码包配置中的-qt-mouse-tslib
- arm平台tslib的编译与qte源代码包配置中的-qt-mouse-tslib--转载
- Qt源码+tslib交叉编译到ARM
- Ubuntu下安装Qt的时arm版本的编译配置问题:The tslib functionality test failed!
- 移植qt之交叉编译tslib-1.4
- QT-WINCE ARM编译过程
- QT 编译过程的问题 :The tslib functionality test failed!
- 安装qt4过程之编译tslib-1.4
- 嵌入式ARM版本的Qt编译安装和移植过程
- qt编译源码的配置参数(包含tslib)
- qt 和 tslib移植
- QT tslib编译错误原因
- tslib编译与安装-----arm----交叉编译
- tslib-1.4.tar.gz安装和配置
- QT5.8交叉编译-arm架构运行!包含触摸屏tslib配置。
- dns逆向解析
- Windows7下安装sql2000个人版(可用,本人已测)
- windows 7 安装asp.net必备的IIS 7 ,VS2005和SQL server 2005流程及注意
- java 运算符、表达式与语句
- QT4-embedded-4.4.3使用tslib的编译
- tslib-1.4 和 arm版QT配置编译过程
- 线性筛法求素数
- 在ubuntu8.10 下建立 ARM-Linux 交叉编译环境
- 在mini2440上移植qt embedded for linux 4.5.2
- Windows7 IIS 7.5 配置详解
- Sicily 1089.Farey Sequence[线性筛法求素数]
- 文件路径分析File::Basename[perl]
- WO
- 数据/配置 的存储方式 Json篇 以JsonCpp库使用为例