我用的是虚拟机下fedora 14(完全安装版),交叉编译器版本arm-linux-4.3.2,
qt源码是qt-everywhere-opensource-src-4.7.1,tslib-1.4,我的过程都是按教程上做的,http://wenku.baidu.com/view/c917436d1eb91a37f1115c53.html主要参考这个,但是在交叉编译tslib时
运行./autogen.sh
输出信息只有
libtoolize: putting auxiliary files in `.'.
libtoolize: copying file `./config.guess'
libtoolize: copying file `./config.sub'
libtoolize: copying file `./install-sh'
libtoolize: copying file `./ltmain.sh'
libtoolize: putting macros in `m4/internal'.
libtoolize: copying file `m4/internal btool.m4'
libtoolize: copying file `m4/internal/ltoptions.m4'
libtoolize: copying file `m4/internal/ltsugar.m4'
libtoolize: copying file `m4/internal/ltversion.m4'
libtoolize: copying file `m4/internal/lt~obsolete.m4'
libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and
libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree.
configure.ac:7: installing `./missing'
并未输出
Done .
Aclocal . . . Done .
Autoheader . . . Done .
Automake . . . configure . ac : 21 : installing ` . / config . guess '
configure.ac:21: installing `./config.sub'
configure . ac : 7 : installing ` . / install - sh '
configure.ac:7: installing `./missing'
plugins / Makefile . am : installing ` . / depcomp
Done.
Autoconf...Done.
Now you can do ./configure, make, make install.
然后,我一开始没管这个问题,接着往下装,到要编译 QT for Embedded ARM时,
我用的是./configure -embedded arm -xplatform qws/linux-arm-g++ -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib
结果就出错了 The tslib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR and QMAKE_LIBDIR in
/home/liuqiqi/source/qt/qt-everywhere-opensource-src-4.7.2/mkspecs/qws/linux-arm-g++.
我试了网上能查得大部分办法,比如添加路径,修改qws/linux-arm-g++/qmake.conf文件,都不能成功,
后来我觉得应该还是交叉编译tslib时出了问题, 于是就反过来去编译tslib,
但是无论怎么弄都只能输出上面我复制的那些信息,输出的并不完整
希望有高手能帮帮我,看看到底哪里出问题了,该怎么办,如果是交叉编译的问题,那么改怎么才能顺利编译tslib
我卡这里好久了。。。谢谢了
------解决方案--------------------
./autogen.sh 是生成configure文件用的,按步骤 继续执行,应该在执行完 ./configure 。。。。。。。才会出现提示gmake
------解决方案--------------------
编译tslib有没有make ,make install的?如果有的话有没有报错呢?
------解决方案--------------------
-I/usr/local/tslib/include -L/usr/local/tslib/lib
这两个参数和你安装tslib的路径一致么?
------解决方案--------------------
到我博客去瞧下,有两篇都是关于你想要的。
------解决方案--------------------
我记得我编译tslib的时候直接./configure 然后make make install ,make之前有些错误,搜索了下修改了就可以了。然后qt编译时并未报错呢!!
这是我参考别人自己编译通过的
(参考这位大牛的:http://blog.csdn.net/yihui8/article/details/5753270)
(或者http://blog.csdn.net/yf210yf/article/details/6701359)
都可以。具体我就不说了,他们说的很详细,我自己也编译过,可以使用。
还有一些细节需要了解自己的触摸屏驱动,是不是支持ioctl()操作,不支持的话有些选项不能选择!总之一句话,你想移植适合你的触摸屏驱动的话,触摸屏驱动肯定要了解,这样才好移植。实际应用中我没有用到触摸屏驱动,所以没有细研究。
如果出现以下错误
/usr/include/bits/fcntl2.h:51: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
make[2]: *** [ts_calibrate.o] Error 1
make[2]: Leaving directory `/root/soft/tslib/ts_lib/tslib/tests'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/soft/tslib/ts_lib/tslib'
make: *** [all] Error 2
解决办法:根据提示找到源文件,将open函数参数修改如下:line:227
cal_fd = open ("/etc/pointercal", O_CREAT | O_RDWR ,0);