qt5.6移植到arm和arm64
来源:互联网 发布:淘宝微淘粉丝怎么增加 编辑:程序博客网 时间:2024/06/13 21:53
源码包下载
链接:http://pan.baidu.com/s/1slyKG6D 密码:seh2
///////qt5.6移植1.解包qt-everywhere-opensource-src-5.6.1.tar.gz配置好交叉编译器.2.修改交叉编译器, vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf 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-gnueabihf-ar cqs QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopy QMAKE_NM = arm-linux-gnueabihf-nm -P QMAKE_STRIP = arm-linux-gnueabihf-strip3.配置QT ./configure -prefix /usr/local/qt-5.6-arm -release -xplatform linux-arm-gnueabi-g++ -make libs -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng 4. make -j4 make install///////5. QT编译,安装完成后, 在/usr/local/qt-5.6-arm里 在QT creator里增加一个arm构件 1) QT creator打开后, 菜单Tools --> Options --> Build & Run(左边栏) --> Compilers(右边的页框) --> add(选gcc) 显示配置界面后, name : arm-gcc compiler path: arm-linux-gnueabihf-g++交叉编译器的路径 完成后,点右下角的apply 2) 接着点击页框("Qt version") --> add --> 弹出界面后选择/usr/local/qt-5.6-arm/bin/qmake 完成后,点击apply 3) 接着点击页框("Kits") --> add 弹出界面后, name : qt-arm Compiler : arm-gcc Qt version: qt-5.6-arm 完成后,点击确认保存退出6. 嵌入式文件系统的QT环境配置: 1) 把PC上的/usr/local/qt-5.6-arm整个目录复制到网络文件系统的usr/local目录里 2) 配置网络文件系统的环境变量. 在网络文件系统etc/profile文件里增加内容: export QTDIR=/usr/local/qt-5.6-arm export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0 export QT_QPA_FONTDIR=$QTDIR/lib/fonts export QT_QPA_GENERIC_PLUGINS=evdevtouch:dev/input/event0 export QT_QWS_FONTDIR=$QTDIR/lib/fonts/ export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event? #export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:inverty export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event? export set LD_LIBRARY_PATH=$QTDIR:$QTDIR/lib/:$QT_QPA_PLATFORM_PLUGIN_PATH:$QT_QPA_FONTDIR:$LD_LIBRARY_PATH 配置完后成后,重启板子才会生效。或者"source /etc/profile"////////////////////////////设置QT鼠标,键盘的环境变量:通过“cat /proc/bus/input/devices” 查看对应的设备文件是哪个event在板子文件系统的/etc/profile里修改环境变量 export QT_QPA_EVDEV_MOUSE_PARAMETERS=/dev/input/event? export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event?重启板子,以便环境变量生效。生效后,QT程序界面即可出鼠标
移植到arm64架构的系统上时,需要使用是刚解包得到的源码才可以。 make distclean清除不干净上次编译的.o文件,否则会发生”incompatible xxxx”的错误.
修改使用arm64交叉编译器, vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
QMAKE_CC = aarch64-linux-gnu-gcc QMAKE_CXX = aarch64-linux-gnu-g++ QMAKE_LINK = aarch64-linux-gnu-g++ QMAKE_LINK_SHLIB = aarch64-linux-gnu-g++ QMAKE_AR = aarch64-linux-gnu-ar cqs QMAKE_OBJCOPY = aarch64-linux-gnu-objcopy QMAKE_NM = aarch64-linux-gnu-nm -P QMAKE_STRIP = aarch64-linux-gnu-strip
还是一样的配置:
./configure -prefix /usr/local/qt-5.6-arm -release -xplatform linux-arm-gnueabi-g++ -make libs -optimized-qmake -pch -qt-sql-sqlite -qt-libjpeg -qt-zlib -qt-libpng
执行make, 编译qt源码时, 会发生错误:
.obj/disk3/myown/qt-5.6/qtimageformats/src/3rdparty/libwebp/src/dsp/dec.o:dec.c:function VP8DspInit: error: undefined reference to ‘VP8DspInitNEON’
.obj/disk3/myown/qt-5.6/qtimageformats/src/3rdparty/libwebp/src/dsp/enc.o:enc.c:function VP8EncDspInit: error: undefined reference to ‘VP8EncDspInitNEON’
.obj/disk3/myown/qt-5.6/qtimageformats/src/3rdparty/libwebp/src/dsp/lossless.o:lossless.c:function VP8LDspInit: error: undefined reference to ‘VP8LDspInitNEON’
.obj/disk3/myown/qt-5.6/qtimageformats/src/3rdparty/libwebp/src/dsp/upsampling.o:upsampling.c:function WebPInitUpsamplers: error: undefined reference to ‘WebPInitUpsamplersNEON’
collect2: error: ld returned 1 exit status
解决办法, 修改qtimageformats/src/3rdparty/libwebp/src/dsp/dsp.h文件:
68 //#define WEBP_USE_NEON //注释第68行后就可以编译通过
编译完成后,执行”make install”就会把arm版的qt工具及动态库安装到”/usr/local/qt-5.6-arm”目录里.
在qt-creator配置图示:
QT creator打开后, 点击菜单Tools后,进入设置编译器界面:
接着增加一个arm版本的配置:
最后再设置一个arm版本的套件:
以上配置完成后, 新创建工程时,就可以qt-arm的版本了。也可以在下面界面里的”Add kit”里增加arm版本:
为了节约空间,也可以仅把qt程序所需的动态库移到嵌入式文件系统里, 查看所需的动态库可以用ldd, 没有ldd命令可以用readelf查看:
aarch64-linux-gnu-readelf -a qt-test | grep “library”
- qt5.6移植到arm和arm64
- QT5.6移植到ARM三星4412-
- 移植qt5.3.1到arm
- 移植qt5.3.1到arm
- qt5.5.1 移植到arm
- 移植qt5.3.1到arm
- QT5移植到ARM中
- QT5.6移植到ARM 之 移植tslib1.4总结
- 移植Qt5.5.1和QtCreator3.5.1到 Linux + ARM
- QT5.5移植到ARM全攻略
- 移植QT5.4.0到ARM开发板
- QT5.5移植到ARM全攻略
- 移植Qt5.7库到ARM
- 移植QT5.7到嵌入式ARM
- Qt5.3移植到arm平台
- 移植Qt5 到 ARM开发板
- 移植tslib和Qt5.6到三星s5pv210开发板
- 移植tslib和Qt5.6到三星s5pv210开发板
- 驱动学习2--注册设备
- VueJs学习汇总
- php 关于时间范围的一些封装
- 4G
- 在普通类中使用Spring注入
- qt5.6移植到arm和arm64
- SVN服务器搭建
- ReactNative开发——组件的引用
- 设计模式拾荒之策略模式(Strategy Pattern): 开闭原则的践行者
- java选择题
- 第15章 数据库、操作系统、计算机网络
- 面向对象基础
- javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
- Object-C总成4