QT移植多点触控
注:本方法只在S5P4418平臺(tái),Qt版本:5.4.1?編譯器:arm-cortex_a9-linux-gnueabi-gcc-4.7.4下試驗(yàn)成功,其他平臺(tái)未做測(cè)試,不同的qt和工具鏈版本之間會(huì)有一定的差異。
前提是觸摸屏的硬件及驅(qū)動(dòng)是支持多點(diǎn)觸摸的(evtest程序測(cè)試)。
1、編譯之前準(zhǔn)備
2、編譯tslib-mt.tar.gz
解壓縮文件:tar -xvf? ?tslib-mt.tar.gz
./autogen-clean.sh ./autogen.sh ./configure --host=arm-cortex_a9-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-cortex_a9-linux-gnueabi.cache --prefix=/usr/local/tslib_mt make make install運(yùn)行結(jié)果如下圖所示,說(shuō)明編譯安裝成功:
查看安裝目錄?/usr/local/tslib_mt 是否安裝成功。
3、編譯mtdev-1.1.5?
解壓縮 tar -xvf mtdev-1.1.5.tar.gz
./autogen.sh ./configure --prefix=/usr/local/mtdev --host=arm-linux CC=arm-cortex_a9-linux-gnueabi-gcc make clean make make install運(yùn)行結(jié)果如下圖所示,說(shuō)明編譯安裝成功:
查看/usr/local/mtdev 目錄是否存在。如若存在說(shuō)明安裝成功。
4、編譯Qt5.41源碼
編譯qt時(shí)間比較長(zhǎng),大概在2個(gè)小時(shí)左右,根據(jù)個(gè)人機(jī)器配置而定。
解壓縮源碼文件
tar -xvf??tar -xvf qt-everywhere-opensource-src-5.4.1.tar.gz?
export PKG_CONFIG_PATH=/usr/local/tslib/lib/pkgconfig:$PKG_CONFIG_PATH export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH export TSLIB_ROOT=/usr/local/tslib export PKG_CONFIG_SYSROOT_DIR=/ export PKG_CONFIG_LIBDIR=/usr/local/mtdev/lib/pkgconfig export PKG_CONFIG_LIB=/usr/local/mtdev/lib/pkgconfig./configure \ -release \ -confirm-license \ -opensource \ -xplatform linux-arm-gnueabi-g++ \ -prefix /usr/local/qt5.4.1-A9 \ -no-c++11 \ -no-opengl \ -no-iconv \ -dbus \ -mtdev \ -make examples \ -I /usr/local/mtdev/include \ -L /usr/local/mtdev/lib -lmtdev make distclean make make install一定要上面編譯的“tslib”和“mtdev”的庫(kù)的路徑配置正確。
編譯過(guò)程中第1個(gè)錯(cuò)誤:
執(zhí)行? gedit??qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf?
修改為
# # qmake configuration for building with arm-linux-gnueabi-g++ #MAKEFILE_GENERATOR = UNIX CONFIG += incremental QMAKE_INCREMENTAL_STYLE = sublibinclude(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf)# modifications to g++.conf QMAKE_CC = arm-cortex_a9-linux-gnueabi-gcc QMAKE_CXX = arm-cortex_a9-linux-gnueabi-g++ QMAKE_LINK = arm-cortex_a9-linux-gnueabi-g++ QMAKE_LINK_SHLIB = arm-cortex_a9-linux-gnueabi-g++# modifications to linux.conf QMAKE_AR = arm-cortex_a9-linux-gnueabi-ar cqs QMAKE_OBJCOPY = arm-cortex_a9-linux-gnueabi-objcopy QMAKE_NM = arm-cortex_a9-linux-gnueabi-nm -P QMAKE_STRIP = arm-cortex_a9-linux-gnueabi-strip load(qt_config)編譯過(guò)程中第2個(gè)錯(cuò)誤:
執(zhí)行
gedit ./qtwebkit/Source/WTF/wtf/unicode/wchar/UnicodeWchar.h? 進(jìn)行修改代碼,修改為如下格式
?
大概一個(gè)小時(shí)左右,編譯完成。查看/usr/local/下是否有編譯完成的 qt5.4.1-A9文件,如若存在,說(shuō)明編譯成功。
?
5、測(cè)試驗(yàn)證
將生成的庫(kù)移植到開(kāi)發(fā)板上面
啟動(dòng)QT程序時(shí)環(huán)境配置(根據(jù)自己實(shí)際庫(kù)存在的路徑進(jìn)行操作)
export LD_LIBRARY_PATH=/usr/qt/lib:$LD_LIBRARY_PATH? ? ? ? ? #配置qt庫(kù)路徑
export QT_QPA_FONTDIR=/app/fonts??????????????????????????????????????????????#配置字體路徑
export DISPLAY=:0??????????????????????????????????????????????????????????????????????????????
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/qt/plugins????#插件路徑
export QT_QPA_GENERIC_PLUGINS=EvdevTouch
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event1 #觸摸屏的驅(qū)動(dòng)的設(shè)備節(jié)點(diǎn)
將生成的Qt庫(kù)中的測(cè)試程序,將下面兩個(gè)程序拷貝至開(kāi)發(fā)板中運(yùn)行
/usr/local/qt5.4.1-A9/examples/touch/pinchzoom/pinchzoom??? //放大縮小
/usr/local/qt5.4.1-A9//examples/touch/fingerpaint/fingerpaint???? //多個(gè)手指同時(shí)劃線
總結(jié)
- 上一篇: 【redis】docker启动redis
- 下一篇: 数据挖掘(一)A-Priori