qt-everywhere-4.7.4不能响应触屏

嵌入梦想 2014-07-22 11:47:14
首先,我移植的tslib没有问题,使用的是tslib1.4。在开发版上面运行测试程序都没问题,使用cat event1也能够从控制台看到有数据。而且我使用qt-2.3.10编译的程序,可以在开发板里面支持触屏。qt4.7.4的配置文件如下:
./configure --prefix=/home/hero/work/qt-arm \
-opensource \
-confirm-license \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-platform /qws/linux-x86-g++ \
-little-endian \
-host-little-endian \
-shared \
-no-qt3support \
-no-phonon -no-phonon-backend \
-qt-zlib \
-no-gif \
-no-libtiff \
-qt-libjpeg \
-no-nis \
-no-cups \
-no-webkit \
-no-glib \
-no-dbus \
-no-rpath \
-no-mmx -no-3dnow \
-no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 \
-no-avx -no-neon \
-no-audio-backend \
-no-svg \
-no-javascript-jit \
-no-script \
-no-scripttools \
-no-multimedia \
-no-openssl \
-nomake tools \
-qt-mouse-tslib -I/home/hero/work/tslib/include -L/home/hero/work/tslib/lib

qt-mouse-tslib 后面的路径没有问题,tslib编译安装的就是这个位置。
然后mkspecs/qws/linux-arm-g++/qmake.conf文件如下:
#
# qmake configuration for building with arm-linux-g++
#

include(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)

# modifications to g++.conf
QMAKE_CC = arm-linux-gcc -lts
QMAKE_CXX = arm-linux-g++ -lts
QMAKE_LINK = arm-linux-g++ -lts
QMAKE_LINK_SHLIB = arm-linux-g++ -lts

# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY = arm-linux-objcopy
QMAKE_STRIP = arm-linux-strip

load(qt_config)


使用qmake生成的Makefile文件部分内容如下:
CC            = arm-linux-gcc -lts
CXX = arm-linux-g++ -lts
DEFINES = -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -pipe -O2 -Wall -W -D_REENTRANT $(DEFINES)
INCPATH = -I../../../mkspecs/qws/linux-arm-g++ -I. -I../../../include/QtCore -I../../../include/QtNetwork -I../../../include/QtGui -I../../../include -I. -I.
LINK = arm-linux-g++ -lts
LFLAGS = -Wl,-O1
LIBS = $(SUBLIBS) -L/home/hero/work/qt-arm/lib -lQtGui -L/home/hero/work/tslib/lib -L/home/hero/work/qt-arm/lib -lQtNetwork -lQtCore -lpthread
AR = arm-linux-ar cqs
RANLIB =
QMAKE = /home/hero/work/qt-arm/bin/qmakearm
TAR = tar -cf
COMPRESS = gzip -9f
COPY = cp -f
SED = sed
COPY_FILE = $(COPY)
COPY_DIR = $(COPY) -r
STRIP = arm-linux-strip
INSTALL_FILE = install -m 644 -p
INSTALL_DIR = $(COPY_DIR)
INSTALL_PROGRAM = install -m 755 -p
DEL_FILE = rm -f
SYMLINK = ln -f -s
DEL_DIR = rmdir
MOVE = mv -f
CHK_DIR_EXISTS= test -d
MKDIR = mkdir -p

如何做,才能让qt4.7.4编译出来的程序支持触摸屏呢??

我做了一些测试,把开发板里面的tslib文件夹改名,而缓进个变量里面不做改动,还是之前的样子,然后我分别运行qt.2.3.10编译的程序,和qt4.7.4编译的程序。
发现,2.3.10的程序无法运行,找不到tslib的相应文件。而4.7.4的程序可以正常运行,而且屏幕中间还有个鼠标。
...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjzl1911 2014-07-24
  • 打赏
  • 举报
回复
引用 2 楼 aifei7320 的回复:
[quote=引用 1 楼 yjzl1911 的回复:] 有没export环境变量啥的? 例如: export QWS_MOUSE_PROTO="Tslib:/dev/input/touchscreen0"
设置了,不然2.3.10的程序也不可能对触屏有反应。谢谢 [/quote] 那可能就得从 configure 的配置去排除下了;我前几天刚搞了下;qt4.8.6 + 下面这个配置是可以的: ./configure -prefix /work/SDK_6_0/filesystem/nfs_rootfs -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-arm-g++ -confirm-license -opensource -release -depths 16,24,32 -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-nis -no-openvg -no-exceptions -nomake examples -nomake demos -nomake docs -nomake translations -no-largefile -no-accessibility -no-stl -no-xmlpatterns -no-audio-backend -no-svg -no-javascript-jit -no-declarative -qt-zlib -no-openssl -no-cups -no-dbus -qt-kbd-linuxinput -no-kbd-tty -qt-gfx-linuxfb -qt-mouse-tslib -no-opengl -qt-freetype -little-endian -no-pch -lrt -stl
yjzl1911 2014-07-23
  • 打赏
  • 举报
回复
有没export环境变量啥的? 例如: export QWS_MOUSE_PROTO="Tslib:/dev/input/touchscreen0"
嵌入梦想 2014-07-23
  • 打赏
  • 举报
回复
引用 1 楼 yjzl1911 的回复:
有没export环境变量啥的? 例如: export QWS_MOUSE_PROTO="Tslib:/dev/input/touchscreen0"
设置了,不然2.3.10的程序也不可能对触屏有反应。谢谢

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧