我是靠谱客的博主 快乐小刺猬,这篇文章主要介绍0003 qt 移植到文件系统中安装qtcreat移植tslib移植qtqt 中文支持,现在分享给大家,希望可以做个参考。

安装qtcreat

运行 qt-opensource-linux-x86_64-4.5.2.run
创建工程测试是否qtcreat

报错 1

复制代码
1
2
:-1: error: cannot find -lGL

错误1 解决办法
原因:Qt5.0 以上的版本默认将OpenGL加入了工程,但是在机器上没有安装OpenGL,所以只需要在机器系统安装OpenGL即可

复制代码
1
2
sudo apt-get install libgl1-mesa-dev

移植tslib

编译 tslib

Tslib:是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

复制代码
1
2
3
//解压tslib tar -xvf tslib-1.4.tar.gz

创建编译脚本

复制代码
1
2
3
4
5
6
7
8
9
10
11
vim build_tslib.sh sudo chmod 777 build_tslib.sh #!/bin/sh ./autogen-clean.sh ./autogen.sh //报错 错误2 # 设置目标机型,缓冲,安装路径 指定交叉编译工具与输出路径 ./configure --host=arm-linux-gnueabihf ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/home/li/linux/install_soft/tslib make -j6 //编译过程中报错 make install

安装成功后验证 install_dir/tslib

复制代码
1
2
3
4
5
ls /home/li/linux/install_soft/tslib -------------------------------------------------------------- bin etc include lib --------------------------------------------------------------

错误2 解决办法
报错 not found autoconf

复制代码
1
2
sudo apt-get install autoconf automake libtool

移植tslib到板卡中

拷贝tslib到根文件系统中

复制代码
1
2
sudo cp -rf tslib/ /home/li/linux/nfs/rootfs/

设置开发板tslib 环境变量

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vim /home/li/linux/share/rootfs/etc/profile echo'-----------------------export tslib env------------------------------' export T_ROOT=/tslib export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event0 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export POINTERCAL_FILE=/etc/pointercal export TSLIB_CALIBFILE=/etc/pointercal 导入环境变量 并设置ts目录路径 export T_ROOT=/tslib 导入环境变量 并设置ts库文件路径 export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH //导入环境变量 并设置ts显示设备为fb0 帧缓存 export TSLIB_FBDEVICE=/dev/fb0 //导入环境变量 并设置ts触摸输入设备,可以鼠标,触摸屏幕,这里使用的鼠标 export TSLIB_TSDEVICE=/dev/input/event0

移植qt

配置 编译环境qt

//创建安装路径

复制代码
1
2
3
4
5
mkdir /home/li/linux/install_soft/arm_qt //解压 tar -xvf qt-everywhere-opensource-src-5.6.0.tar.gz

创建编译脚本 需要指定 qt源码目录 tslib目录

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
vi autoconfigure.sh #!/bin/sh ./configure -prefix /home/li/linux/install_soft/arm-qt -confirm-license -opensource -shared -release -make libs -xplatform linux-arm-gnueabi-g++ -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-cups -no-glib -no-dbus -no-xcb -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-separate-debug-info -no-fontconfig -nomake examples -nomake tools -nomake tests -no-iconv -tslib -I /home/li/linux/install_soft/tslib/include -L /home/li/linux/install_soft/tslib/lib exit

需要注意 qt 安装路径 以及上一步安装的tslib路径

指定交叉编译工具及 tslib 的路径

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
vim 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 += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard + QMAKE_CXXFLAGS += -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard include(../common/linux.conf) include(../common/gcc-base-unix.conf) include(../common/g++-unix.conf) # modifications to g++.conf - QMAKE_CC = arm-linux-gnueabi-gcc - QMAKE_CXX = arm-linux-gnueabi-g++ - QMAKE_LINK = arm-linux-gnueabi-g++ - QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++ + QMAKE_CC = arm-linux-gnueabihf-gcc + QMAKE_CXX = arm-linux-gnueabihf-g++ + QMAKE_LINK = arm-linux-gnueabihf-g++ + QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++ # modifications to linux.conf - QMAKE_AR = arm-linux-gnueabi-ar cqs - QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy - QMAKE_NM = arm-linux-gnueabi-nm -P - QMAKE_STRIP = arm-linux-gnueabi-strip + QMAKE_AR = arm-linux-gnueabihf-ar cqs + QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy + QMAKE_NM = arm-linux-gnueabihf-nm -P + QMAKE_STRIP = arm-linux-gnueabihf-strip + QMAKE_INCDIR += /home/li/linux/install_soft/tslib/include + QMAKE_LIBDIR += /home/li/linux/install_soft/tslib/lib load(qt_config)

编译

复制代码
1
2
3
4
5
6
7
8
9
10
11
//配置脚本给权限 sudo chmod u+x autoconfigure.sh //配置 ./autoconfigure.sh -------------------------------------------------------------- Qt is now configured for building. Just run 'make'. ... -------------------------------------------------------------- //编译 make -j6

安装qt到目标文件夹并验证

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
make install ls /home/li/linux/linux_qt/install_dir/qt5.6/arm-qt -------------------------------------------------------------- bin doc include lib mkspecs plugins qml translations -------------------------------------------------------------- cd bin ./qmake -v -------------------------------------------------------------- QMake version 3.0 Using Qt version 5.6.0 in /home/li/linux/linux_qt/install_dir/qt5.6/arm-qt/lib --------------------------------------------------------------

移植qt到板卡中

sudo cp -rf /home/li/linux/install_soft/arm-qt /home/li/linux/nfs/rootfs

设置环境变量
sudo vim /home/li/linux/nfs/rootfs/etc/profile

复制代码
1
2
3
4
5
6
7
8
echo'-----------------------export qt env------------------------------' export QTEDIR=/arm-qt export LD_LIBRARY_PATH=/arm-qt/lib:$LD_LIBRARY_PATH export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/input/event0 export QT_QPA_FONTDIR=$QTEDIR/lib/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1280x720:mmSize=1280x720:offset=0x0:tty=/dev/ttymxc0

当支持触摸屏时需要配置:export QT_QPA_GENERIC_PLUGINS="tslib:/dev/input/event0
当需要支持鼠标时需要配置:export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/input/event0
当需要同时支持触摸屏和鼠标时则需要配置成:export QT_QPA_GENERIC_PLUGINS=“tslib:/dev/input/event0 MouseMan:/dev/input/mouse0”

qt 中文支持

编译 libiconv-1.14

libiconv qt解决中文乱码用于编码转换使用的库

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//创建安装路径 mkdir /home/li/linux/install_soft/libiconv //解压 tar -xvf libiconv-1.14.tar_2.gz //创建脚本 vim build_libiconv.sh sudo chmod 777 build_libiconv.sh #!/bin/sh make clean //配置 ./configure --host=arm-linux --prefix=/home/li/linux/install_soft/libiconv CC=arm-linux-gnueabihf-gcc make //安装libiconv到目标文件夹 make install

验证libicon

复制代码
1
2
3
4
5
objdump -a /lib/preloadable_libiconv.so -------------------------------------------------------------- preloadable_libiconv.so: 文件格式 elf32-little --------------------------------------------------------------

移植preloadable_libiconv.so到板卡中

复制代码
1
2
3
cd /home/li/linux/install_soft/libiconv/lib sudo cp preloadable_libiconv.so /home/li/linux/nfs/rootfs/lib

设置环境变量

复制代码
1
2
3
vim /home/li/linux/share/rootfs/etc/profile export LD_PRELOAD=/lib/preloadable_libiconv.so

添加字库文件到根文件系统中

需要将DroidSansFallback.ttf 中文字库到复制到文件系统中

复制代码
1
2
3
sudo mkdir lib/fonts cp DroidSansFallback.ttf /home/li/linux/nfs/rootfs/arm-qt/lib/fonts

DroidSansFallback.ttf 必须存在export QT_QPA_FONTDIR=$QTEDIR/lib/fonts 所指向的文件夹

环境变量

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
echo'-----------------------export qt env------------------------------' export LD_PRELOAD=/lib/preloadable_libiconv.so export T_ROOT=/tslib export LD_LIBRARY_PATH=/tslib/lib:$LD_LIBRARY_PATH export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0 export TSLIB_TSDEVICE=/dev/input/event2 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf export POINTERCAL_FILE=/etc/pointercal export TSLIB_CALIBFILE=/etc/pointercal export QTEDIR=/qt5.6 export LD_LIBRARY_PATH=/qt5.6/lib:$LD_LIBRARY_PATH export QT_QPA_GENERIC_PLUGINS=evdevmouse:/dev/input/event2 export QT_QPA_FONTDIR=$QTEDIR/lib/fonts export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=1280x720:mmSize=1280x720:off set=0x0:tty=/dev/ttymxc0

最后

以上就是快乐小刺猬最近收集整理的关于0003 qt 移植到文件系统中安装qtcreat移植tslib移植qtqt 中文支持的全部内容,更多相关0003内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部