博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jz2440移植QT5.6【学习笔记】【原创】
阅读量:5116 次
发布时间:2019-06-13

本文共 5021 字,大约阅读时间需要 16 分钟。

平台:jz2440

作者:庄泽彬(欢迎转载,请注明作者)

交叉编译工具:arm-linux-gcc (GCC)4.4.3

linux:linu3.4.2

PC环境:ubuntu18.04

一、修改/opt/FriendlyARM/toolschain/4.4.3arm-none-linux-gnueabi/sys-root/usr/include/linux/input.h,将EV_VERSION改为0x010001

 

 

二、制作文件系统

2.1解压busybox

1 tar -xvf busybox-1.20.0.tar.bz2

2.2设置交叉工具链

1 make menuconfig

编译:

1 make

创建安装的目录:

1 mkdir -pv /work/nfs_root/qt/fs_mini_install

安装:

1 make install CONFIG_PREFIX=/work/nfs_root/qt/fs_mini_install

查看是否安装成功:

1 zhuang@zhuang:/work/nfs_root/qt/fs_mini_install$ tree -L 12 .3 ├── bin4 ├── linuxrc -> bin/busybox5 ├── sbin6 └── usr7 8 3 directories, 1 file

从交叉工具链安装glibc:

1 mkdir lib usr/lib2 cp /opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi/lib/*.so* lib/ -d3 cp /opt/FriendlyARM/toolschain/4.4.3/lib/*.so* lib/ -d

创建etc目录:

1 mkdir etc

在etc目录下创建inittab文件:

1 vim inittab     //内容从第2行开始2 # /etc/inittab3 ::sysinit:/etc/init.d/rcS4 console::askfirst:-/bin/sh5 tty1::askfirst:-/bin/sh6 ::ctrlaltdel:/sbin/reboot7 ::shutdown:/bin/umount -a -r

在etc目录下穿件init.d/rcS文件:

1 mkdir init.d 2 vim init.d/rcS 3 chmod a+x init.d/rcS  //内容如下 4 #!/bin/sh 5    6 mount -a 7 mkdir /dev/pts 8 mount -t devpts devpts /dev/pts 9 echo /sbin/mdev > /proc/sys/kernel/hotplug10 mdev -s

在etc目录下创建fstab文件:内容如下:

1 # device     mount-point    type   options        dump  fsck order2 proc           /proc        proc   defaults        0     03 tmpfs          /tmp         tmpfs  defaults        0     04 sysfs          /sys         sysfs  defaults        0     05 tmpfs          /dev         tmpfs  defaults        0     0

创建dev目录:

1 mkdir dev2 sudo mknod console c 5 13 sudo mknod null c 1 3

创建其他目录:

1 mkdir proc tmp mnt sys root

将fs_mini_install目录制作成文件系统镜像命令:

1 mkfs.jffs2 -n -s 2048 -e 128KiB -d fs_mini_install -o fs_mini_install.jffs2

 三、tslib的移植

1 tar xzf tslib-1.4.tar.gz2 cd tslib3 ./autogen.sh 4 5 mkdir tmp6 echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache7 ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp8 make9 make install

安装:

1 cd tmp2 cp * /work/nfs_root/qt/fs_mini_install/usr/local/tslib/ -rf

修改tslib:

1 修改 /etc/ts.conf第1行(去掉#号和第一个空格):2 # module_raw input3 改为:4 module_raw input

测试:

设置环境变量

1 vim etc/profile    //内容从第2行开始 2 #!/bin/sh 3    4 export T_ROOT=/usr/local/tslib 5  6 export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH 7  8 export TSLIB_CONSOLEDEVICE=none 9 10 export TSLIB_FBDEVICE=/dev/fb011 12 export TSLIB_TSDEVICE=/dev/event013 14 export TSLIB_PLUGINDIR=$T_ROOT/lib/ts15 16 export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf17 18 export POINTERCAL_FILE=/etc/pointercal19 20 export TSLIB_CALIBFILE=/etc/pointercal

运行校准测试例子:

1 cd /usr/local/tslib/bin2 ./ts_calibrate

五、移植QT 

下载链接qt5.6:

解压:

1 tar -xvf qt-everywhere-opensource-src-5.6.0.tar.gz

修改配置文件:

1 vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 2 修改或添加如下内容: 3 # modifications to g++.conf 4 QMAKE_CC                = arm-none-linux-gnueabi-gcc -lts 5 QMAKE_CXX               = arm-none-linux-gnueabi-g++ -lts 6 QMAKE_LINK              = arm-none-linux-gnueabi-g++ -lts 7 QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++ -lts 8  9 # modifications to linux.conf10 QMAKE_AR                = arm-none-linux-gnueabi-ar cqs11 QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy12 QMAKE_NM                = arm-none-linux-gnueabi-nm -P13 QMAKE_STRIP             = arm-none-linux-gnueabi-strip14 load(qt_config)15 16 QT_QPA_DEFAULT_PLATFORM = linuxfb17 QMAKE_CFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t18 QMAKE_CXXFLAGS += -msoft-float -D__GCC_FLOAT_NOT_NEEDED -march=armv4t -mtune=arm920t

配置命令:

1 ./configure  -prefix /usr/local/Qt5.6   -opensource   -release   -confirm-license   -xplatform linux-arm-gnueabi-g++   -shared   -qt-zlib   -no-gif   -qt-libjpeg   -no-nis   -no-opengl  -no-iconv -no-cups   -no-glib   -no-dbus   -no-rpath   -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2   -no-avx    -no-openssl   -nomake tools   -qreal float   -qt-libpng   -tslib   -nomake examples   -I /usr/local/tslib/include   -L /usr/local/tslib/lib

编译和安装:

1 make -j42 make install

修改下面这个文件为截图的内容

1  vim /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

将生成的/usr/local/Qt5.6 移植到开发板的文件系统

1 cp /usr/local/Qt5.6/ /work/nfs_root/qt/fs_mini_install/usr/local/ -raf

开发板/etc/profile添加如下内容:

1 export QTEDIR=/usr/local/Qt5.6 2 export LD_LIBRARY_PATH=/usr/local/Qt5.6/lib:$LD_LIBRARY_PATH 3 export QT_QPA_GENERIC_PLUGINS=tslib 4 export QT_QPA_FONTDIR=$QTEDIR/lib/fonts  5 export QT_QPA_PLATFORM_PLUGIN_PATH=$QTEDIR/plugins  6 export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=480x272:mmSize=480x272:offset=0x0:tty=/dev/tty1 7 export QT_QPA_FB_TSLIB=1 8  9 export T_ROOT=/usr/local/tslib10 11 export LD_LIBRARY_PATH=/usr/local/tslib/lib:$LD_LIBRARY_PATH

六、安装QTCreator开发工具

下载链接:

安装:

1  sudo chmod a+x qt-opensource-linux-x64-5.10.0.run2 ./qt-opensource-linux-x64-5.10.0.run

安装的方法非常简单记得在一路next选择默认的即可,记得在选择组件的时候两个都勾上,把工具全部都安装上去把。

 设置QT的工程可以在arm开发上运行,自己新建一个工具,之后根据截图的箭头设置:

 交叉工具链的位置根据自己的目录进行调整

之后编译自己的项目,把程序推送到板子:

 

 

转载于:https://www.cnblogs.com/zzb-Dream-90Time/p/9815291.html

你可能感兴趣的文章
NOIP2013 提高组 Day1
查看>>
个人对vue生命周期的理解
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>
虚拟化架构中小型机构通用虚拟化架构
查看>>
继承条款effecitve c++ 条款41-45
查看>>
HTML+CSS学习笔记(九)
查看>>