qt交叉编译+tslib触摸插件交叉编译

  1. 为方便上传和下载文件linux安装VMwaretools,方便安装包的上传
  2. 先用命令窗口启动管理员权限的文件夹,是安装包可以复制到根目录下的opt目录(一般软件放于此目录)

qt交叉编译+tslib触摸插件交叉编译_第1张图片

新建命令窗口,进入opt目录

解压vmwaretolls安装包,文件名红色,说明需要管理员权限su切换

进入到解压好的文件目录,并查看目录文件ls展示文件目录下的文件

qt交叉编译+tslib触摸插件交叉编译_第2张图片

运行./vmware-install.pl

碰到yes/no回答yes

碰到其他直接回车

qt交叉编译+tslib触摸插件交叉编译_第3张图片

观察到linux窗口大小变化即生效

部分用户需重启才可生效

  1. 准备四个安装包,qt源码,交叉编译工具,tslib触摸插件,qt安装包
  2. qt交叉编译+tslib触摸插件交叉编译_第4张图片将四个安装包放置/home/admin123/目录下

安装交叉编译器

创建sudo mkdir /usr/local/arm目录

解压文件到该目录下sudo tar xf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz -C /usr/lo/arm

查看验证、

qt交叉编译+tslib触摸插件交叉编译_第5张图片

配置环境变量

用管理员命令打开文件夹进入etc目录,找到profile文件打开,在最后加入交叉编译器的bin文件目录

qt交叉编译+tslib触摸插件交叉编译_第6张图片

重启计算机,使环境变量生效

验证环境变量生效,下图,即为成功

qt交叉编译+tslib触摸插件交叉编译_第7张图片

要使用此编译器,还要在 Ubuntu 上安装一些库

sudo apt-get install lsb-core lib32stdc++6

qt交叉编译+tslib触摸插件交叉编译_第8张图片

Tslib安装

解压tar xf tslib-1.22.tar.bz2

qt交叉编译+tslib触摸插件交叉编译_第9张图片

安装插件生成makefile

sudo apt-get update

qt交叉编译+tslib触摸插件交叉编译_第10张图片

sudo apt-get install autoconf automake libtool

qt交叉编译+tslib触摸插件交叉编译_第11张图片

执行 autogen.sh 生成 Makefile,以编译源码

qt交叉编译+tslib触摸插件交叉编译_第12张图片

如果报错

缺少宏相关的文件

安装pkg-config包,即可解决

sudo apt-get install pkg-config -y

安装后再次编译源码

配置交叉编译器工具和tslib的编译输出路径

./configure --host=aarch64-linux-gnu ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix= /home/alientek/tslib-1.21/arm-tslib

aarch64-linux-gnu为交叉编译工具的名字

/home/alientek/tslib-1.21/arm-tslib为交叉编译输出的路径,

qt交叉编译+tslib触摸插件交叉编译_第13张图片

出现上图直接进行

make

makeinstall

如果出现权限不够等,可切换管理员用户

              Su

如果在管理员权限下仍makeinstall失败,在此命令窗口下查看aarch64-linux-gnu -v,如查不到,使用su -,完全切换到管理员权限(su仅仅切换的是用户存取权限,但无法获取环境变量 su -可),在进行makeinstall,如果出现relink linear.o,make clean清除后,在进行makeinstall,警告可不予理会。

验证编译出来的talib为ARM格式

找到编译输出的文件夹输入file bin/ts_calibrate

qt交叉编译+tslib触摸插件交叉编译_第14张图片

编译ARM平台qt源码

准备压缩包解压

进入加压后的编辑

mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf,配置相关编译器及路径文件目录

qt交叉编译+tslib触摸插件交叉编译_第15张图片

更改如下,添加绝对路径在每个交叉编译器前,路径为安装交叉编译器的bin目录

qt交叉编译+tslib触摸插件交叉编译_第16张图片

配置编译器选项,创建autoconfigure.sh文件,放入qt源码下

  1. 为编译输出的路径
  2. 3.Tslib编译后的两个路径
  3. skip的部分需要额外可能较为复杂的操作,暂时没有处理,若不跳过编译会出错
  4. -no-opengl,不编译opengl,目前没有找到合适的解决方法,只能跳过
  5. 某些不需要的模块编译出错,若不想修改就跳过
  6. 赋予脚本可执行权限
  7. chmod +x autoconfigure.sh
  8. sudo apt-get install g++ // 配置前请先安装 g++
  9. 运行./autoconfigure.sh

qt交叉编译+tslib触摸插件交叉编译_第17张图片

qt交叉编译+tslib触摸插件交叉编译_第18张图片

qt交叉编译+tslib触摸插件交叉编译_第19张图片

执行 make 开始编译

time (make -j 16) // -j 16 代表最多允许 16 条编译指令同时运行,参数 16,一般为 个人分配给虚拟机的核心数的 2 倍,前面加个 time 是测试编译时间。

qt交叉编译+tslib触摸插件交叉编译_第20张图片

执行make install

如果编译出错停止,找到,出错文件的目录,在autoconfigure.sh文件目录下skip 该文件qt交叉编译+tslib触摸插件交叉编译_第21张图片

qt交叉编译+tslib触摸插件交叉编译_第22张图片

出错为qtlocation,

qt交叉编译+tslib触摸插件交叉编译_第23张图片

找到编译输出目录

切换为管理员用户su –

Qtlocation问题可以解决

至此,qt源码编译成功

Qt Creator安装

赋予该文件可执行权限,再执行安装

qt交叉编译+tslib触摸插件交叉编译_第24张图片

运行弹出qt安装界面

qt交叉编译+tslib触摸插件交叉编译_第25张图片

点击下一步输入邮箱密码下一步

勾选下图

qt交叉编译+tslib触摸插件交叉编译_第26张图片

下一步,勾选组件

qt交叉编译+tslib触摸插件交叉编译_第27张图片

qt交叉编译+tslib触摸插件交叉编译_第28张图片

qt交叉编译+tslib触摸插件交叉编译_第29张图片

添加,qt源码编译出来的文件目录下的qmake

qt交叉编译+tslib触摸插件交叉编译_第30张图片

添加交叉编译器

aarch64-linux-gnu-g++

aarch64-linux-gnu-gcc

qt交叉编译+tslib触摸插件交叉编译_第31张图片

qt交叉编译+tslib触摸插件交叉编译_第32张图片

qt交叉编译+tslib触摸插件交叉编译_第33张图片

qt交叉编译+tslib触摸插件交叉编译_第34张图片

qt交叉编译+tslib触摸插件交叉编译_第35张图片

qt交叉编译+tslib触摸插件交叉编译_第36张图片

qt交叉编译+tslib触摸插件交叉编译_第37张图片

qt交叉编译+tslib触摸插件交叉编译_第38张图片

qt交叉编译+tslib触摸插件交叉编译_第39张图片

qt交叉编译+tslib触摸插件交叉编译_第40张图片

qt交叉编译+tslib触摸插件交叉编译_第41张图片

移植qt代码到上位机

编译安装好的 arm-tslib 文件夹打包成 tar.bz2 格式

tar -jcf ./arm-tslib.tar.bz2 arm-tslib

qt交叉编译+tslib触摸插件交叉编译_第42张图片

arm-tslib.tar.bz2 解压到/usr/lib 目录下

tar xf arm-tslib.tar.bz2 -C /usr/lib

qt交叉编译+tslib触摸插件交叉编译_第43张图片

配置我们自己的 tslib 环境变量

vi /etc/profile

Esc +:wq然后回车退出

source /etc/profile   使能环境变量

/usr/lib/arm-tslib/bin/ts_test  运行 ts_test 测试触摸是否正常,点击界面的 Draw 测试

qt交叉编译+tslib触摸插件交叉编译_第44张图片

export TSLIB_CONSOLEDEVICE=none #控制台设备文件名,没有就一定要写none,否则执行出错

#export TSLIB_FBDEVICE=dev/fb0 #frame buffer,默认为fb0

export TSB_TSDEVICE=/dev/input/event0 #驱动触摸屏所在位置(自行查看event0/event1)

export TSLIB_CONFFILE=/etc/ts.conf #配置文件

export TSLIB_PLUGINDIR=/usr/lib/ts #tslib库文件

export TSLIB_CALIBFILE=/etc/pointercal #存储校准数据的文件

编译安装好的 arm-qt 文件夹打包成 tar.bz2 格式

tar -jcf ./arm-qt.tar.bz2 arm-qt

解压到/usr/lib 目 录下

tar xf arm-qt.tar.bz2 -C /usr/lib

qt交叉编译+tslib触摸插件交叉编译_第45张图片

配置qt环境变量

vi /etc/profile

Esc +:wq然后回车退出

使能 Qt 的配置在/etc/profile 的环境变量

行将 windows 下的(路径 C:\Windows\Fonts)下的中文字库放到新 建一个/usr/share/fonts/目录下

qt交叉编译+tslib触摸插件交叉编译_第46张图片

export QT_ROOT=/usr/lib/arm-qt #qt编译产物路径

export QT_QPA_FONTDIR=/usr/share/fonts #系统字体,可以拷贝win上的字体过来

export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins

export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0

export QT_PLUGIN_PATH=$QT_ROOT/plugins

export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms

export QML2_IMPORT_PATH=$QT_ROOT/qml

export QT_QPA_FB_TSLIB=1 #支持tslib

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib #添加tslib的lib库

source /etc/profile

/usr/lib/arm-qt/examples/widgets/animation/animatedtiles/animatedtiles //运行编译的示例

你可能感兴趣的:(qt,ubuntu,linux)