本帖最后由 scrin 于 2017-6-13 12:20 编辑
本文不再更新,不会回复,请勿私信。本经验可以使用linuxfb,x11。opengl有人在3288上失败了,主要还是3288的linux的opengl支持不全,没办法。本经验的思路理论上适用于所有不老的开发板。不含触屏库,因为我没有触屏,测试不了。
关于Qt5.9.0的交叉编译:现阶段交叉编译不带opengl版本的qt有一些小bug,据说将在5.9.1修复,解决bug需要修改源码,且可能会导致qtlocation无法使用。具体的后面有
qt5.8 arm预编译库(不含opengl)下载地址:百度网盘 ,解压后必须复制到PC机的/usr/local里才能用qtcreator交叉编译,qtcreator请用最新版本(我是421),太老的版本已证实无法识别高版本qt。该库在开发板上的使用方法见第三节。注意如果使用中提示缺库,就参照1.2装一装库。
qt5.9.0 arm预编译库(不含opengl)下载地址:百度网盘,对应qtcreator版本为4.3,其余同上
效果图:
qt.jpg (64.87 KB, 下载次数: 88)
2017-3-12 13:59 上传
1. 准备工作
1.1 参考http://developer.t-firefly.com/thread-818-1-1.html在内核中启用nfs,然后将开发板的根文件系统挂载到pc上,我挂载到了/home/yy/mntnfs里。(如果你不想动内核,就在1.2步,所有qt编译需要的库都弄完后把开发板内的/lib,/usr/lib,/usr/include三个文件夹复制到电脑上,建立起和开发板相同的目录结构,将它作为挂载目录,但是不推荐这么做,因为开发板库没装对的话configure结果没有你要的库,就白复制了,比较浪费时间)
1.2 为开发板安装qt需要的库(不一定真的需要,我就不测试了,太麻烦):
sudo apt-get install build-essential
sudo apt-get install libfontconfig1 libfontconfig1-dev
sudo apt-get install libxrender-dev libxrender1 libxkbcommon-dev libxkbcommon-x11-0 libxkbcommon-x11-dev libxkbcommon0
sudo apt-get install libglib2.0-dev libglib2.0-0
sudo apt-get install libfreetype6 libfreetype6-dev
*OpenGL ES是平台相关的,需要在下面的conf文件里添加你自己平台的opengl库路径和头文件。目前fireprime没有库,3288是有opengl库的,但是有人给rk3288编译opengl失败了。
可能有少的,可以根据qt配置结果(源码目录中的config.log)看还需要哪些库,然后去http://packages.ubuntu.com/搜索库名字,在开发板上自行安装。例如蓝牙库BlueZ等,默认开发板是没有的,需要你自己提前安装。另外如果有些库你安装了配置结果里也没有,就去看config.log,看是什么原因,例如我这有找不到glib的原因是符号链接在pc端下无法正确识别问题,解决办法见第二部分错误解决办法
注:tslib无法通过apt-get获得,需要自行下载源码包交叉编译
1.3 准备一个交叉编译工具链。本人使用linaro gnueabihf 5.3.1。下载地址:
https://releases.linaro.org/comp ... rm-linux-gnueabihf/
1.4 解压qt5.8源码包,修改qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf如下(需要按你自己的情况修改一些路径):
#
# qmake configuration for building with arm-linux-gnueabi-g++
#
MAKEFILE_GENERATOR &