移植qt5.3.1到arm
来源:互联网 发布:阿里云免费监控 编辑:程序博客网 时间:2024/05/21 06:49
第一步准备好源码包,这里需要qt的源码包,和tslib包,tslib我使用的是开发板提供的包。
设置交叉编译环境,我使用的是friendly arm的交叉工具。将其加到PATH中。
然后看看是不是已经安装成功。
编译tslib,相关的资料可以找资料,这边就不再赘述了。
我把qt源码包解压到~/software文件夹下,重命名为qte-5.3.1。我们是在arm板上移植,需要知道芯片的架构。我的是arm9,其架构是armv5te。我们进入/home/zhou/software/qte-5.3.1/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 = sublib
//添加的内容
QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE +=-O2 -march=armv5te
QMAKE_CXXFLAGS_RELEASE +=-O2 -march=armv5te
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
//添加的内容
QMAKE_INCDIR += /home/zhou/software/tslib1.4-icool2416-v1.0/_install/usr/include
QMAKE_LIBDIR += /home/zhou/software/tslib1.4-icool2416-v1.0/_install/usr/lib
# modifications to g++.conf
QMAKE_CC = arm-linux-gcc//这边需要根据你安装来设计,我的是arm-linux-xx
QMAKE_CXX = arm-linux-g++
QMAKE_LINK = arm-linux-g++
QMAKE_LINK_SHLIB = arm-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-linux-ar cqs
QMAKE_OBJCOPY = arm-linux-objcopy
QMAKE_NM = arm-linux-nm -P
QMAKE_STRIP = arm-linux-strip
load(qt_config)
板子比较低端,只能使用framebuffer,如果支持opengl es,可以使用eglfs。qt5将显示都做成了插件形式,这提供了更多的灵活性,详细的内容可以去看qt5的文档。
我编译使用的脚本
#!/bin/sh
echo 'build Qt5 for embedded linux Author Zhou Xiang'
mkdir _install
$PWD/configure -v /
-prefix $PWD/_install /
-release /
-make libs /
-xplatform linux-arm-gnueabi-g++ /
-optimized-qmake /
-pch /
-qt-sql-sqlite /
-qt-libjpeg /
-qt-zlib /
-no-opengl /
-no-sse2 /
-no-openssl /
-no-nis /
-no-cups /
-no-glib /
-no-xcursor -no-xfixes -no-xrandr -no-xrender /
-no-separate-debug-info /
-nomake examples -nomake tools
make && make install
你可以详细的根据自己的需要配置,其实大部分的配置我都没看过。在qte-5.3.1文件夹下运行这个脚本就行。
然后将_install文件夹下的lib,plugin和include拷贝到你想放置的地方,我放置在opt/qte-5.3.1下。tslib生成usr文件夹,我直接拷贝到arm板的根目录下。对/etc/profile进行配置,如下
export TSLIB_ROOT=/usr
export QT_ROOT=/opt/qte-5.3.1
export TSLIB_TSDEVICE=/dev/touchscreen
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/usr/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export QWS_MOUSE_PROTO=tslib:/dev/touchscreen
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$LD_LIBARAY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so
export QT_QPA_GENERIC_PLUGINS=tslib
配置ts.conf,如果像我这样,其在/usr/ect目录下
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
这样我们就配置好了。
下面就是交叉编译我们的项目,其实很简单,就是用qte-5.3.1/_install/bin/qmake一下,然后直接make就ok了。
一开试我运行程序./talkroom -platform linuxfb -plugin tslib总是报
Couldnt load module pthres
Error configuring
: No such file or directory
想了各种办法,然后发现,是libts.so没有加载,然后在LD_PRELOAD添加了
export LD_PRELOAD=/usr/lib/preloadable_libiconv.so:$TSLIB_ROOT/lib/libts.so,正常了。
qt5.3.1比较为客户着想,其将窗体边框去了,而且屏幕上没有鼠标的光标了,更加想提供给触摸屏是使用。
- 移植qt5.3.1到arm
- 移植qt5.3.1到arm
- 移植qt5.3.1到arm
- qt5.5.1 移植到arm
- QT5移植到ARM中
- QT5.5移植到ARM全攻略
- 移植QT5.4.0到ARM开发板
- QT5.6移植到ARM三星4412-
- QT5.5移植到ARM全攻略
- 移植Qt5.7库到ARM
- 移植QT5.7到嵌入式ARM
- Qt5.3移植到arm平台
- qt5.6移植到arm和arm64
- 移植Qt5 到 ARM开发板
- QT5.6移植到ARM 之 移植tslib1.4总结
- Qt5.4.1移植到arm——Linuxfb篇
- 移植Qt5.5.1和QtCreator3.5.1到 Linux + ARM
- Qt5.5.0编译移植到Linux-Arm-A9
- 句柄的使用(一)—— 点击不可点击按钮和修改按钮标题
- NXP发布PN66T模组
- 操作符结合性的作用
- index of 的用法与subString的用法
- daterangepicker bootstarp 日期范围选择控件使用注意事项
- 移植qt5.3.1到arm
- 时间复杂度与空间复杂度
- 新建Play!项目
- 向死而生的跨境电商,还有几道救命符可用?
- 数据结构实验之链表四:有序链表的归并
- kAMDMobileImageMounterDeviceLocked
- 文件加密
- HDU 5441 Travel (并查集)
- Js基本数据类型常用方法扩展(基本数据处理)