Qt 的版本众多,交叉编译Qt可以下载 最新的 Qt 5.11,在 qtbase/mkspecs/devices/ 下找到你对应开发板的配置文件,

拷贝出来, 选择一版适用当前交叉编译工具链的版本,这里以  5.8.0版本的Qt 作为demo。

下载源码,qt-everywhere-opensource-src-5.8.0    下载地址    http://download.qt.io/archive/qt/

解压后 ,找到Qt 5.11.1中跟目标开发板最匹配的配置文件 ,我的是 qt-everywhere-opensource-src-5.8.0/qtbase/mkspecs/devices/linux-rcar-m3-g++   拷贝整个linux-rcar-m3-g++目录

到  Qt 5.8.0 对应的 devices/目录下,

source XXXXX交叉工具编译链

写一个 配置脚本build.sh  chmod 修改执行权限 。

#!/bin/bash
export ROOTFS=/apt/poky/2.1.2/sysroots/aarch64-poky-linux

./configure \
-opensource \
-confirm-license \
-v \
-skip qt3d \
-skip webchannel \
-skip location \
-prefix /home/Qt580/ \
-device linux-rcar-m3-g++ \
-device-option CROSS_COMPILE=/apt/poky/2.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux- \
-sysroot $ROOTFS \
-opengl es2 \

对于报错的模块可以选在skip 掉 。

执行build.sh 脚本 后,生成Makefile

make    长达一个多小时

make install  安装在 ROOTFS 的 /home/QT580中

Qt  Creator   下载  qt-opensource-linux-x64-5.8.0.run  还是之前的下载地址。

配置交叉编译环境。

工具栏   ----〉 Options   ----〉

左边栏 Build & Run  ,  配置   Compliers    -〉 Manual Add  -〉 GCC -〉 C/C++  全配置成/apt/poky/2.1.2/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++

配置Qt Versions   -〉 Manual       Add     配置   /apt/poky/2.1.2/sysroots/aarch64-poky-linux/home/Qt580/bin/qmake

配置  Kits   Compiles  选 配置的Manual GCC  ,Qt Version 选择 Menual Version

Apply

新建一个工程

Kit Selection  选择刚才配置 的KIt  名字    。

在 demo.pro 配置文件中 添加Opencv  库文件。(交叉编译好了)

INCLUDEPATH += /apt/poky/2.1.2/sysroots/aarch64-poky-linux/usr/include \
/apt/poky/2.1.2/sysroots/aarch64-poky-linux/usr/include/opencv \
/apt/poky/2.1.2/sysroots/aarch64-poky-linux/usr/include/opencv2

LIBS += \
/apt/poky/2.1.2/sysroots/aarch64-poky-linux/usr/lib/libopencv_*

编写代码

#include "mainwindow.h"
#include <QApplication>
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
Mat frame0,frame1,frame2,frame3;
//frame=imread("/media/logo.bmp");
VideoCapture cap0(0);
VideoCapture cap1(1);
VideoCapture cap2(2);
VideoCapture cap3(3);
if(!cap0.isOpened())return 1;
if(!cap1.isOpened())return 1;
if(!cap2.isOpened())return 1;
if(!cap3.isOpened())return 1;
while(1){
if(!cap0.read(frame0))return 1;
if(!cap1.read(frame1))return 1;
if(!cap2.read(frame2))return 1;
if(!cap3.read(frame3))return 1;
resize(frame0,frame0,Size(640,480));
imshow("test0",frame0);
moveWindow("test0", 0, 0);
resize(frame1,frame1,Size(640,480));
imshow("test1",frame1);
moveWindow("test1",640,0);
resize(frame2,frame2,Size(640,480));
imshow("test2",frame2);
moveWindow("test2",0,480);
resize(frame3,frame3,Size(640,480));
imshow("test3",frame3);
moveWindow("test3",640,480);
waitKey(30);
}
//cout << "Hello world\n"<<endl;
// return 0;
// QApplication a(argc, argv);
// MainWindow w;
//w.show();

// return a.exec();
return 0;
}

配置 ,开发板环境变量  /etc/enviroment   添加  QT_QPA_PLATFORM=linuxfb  ( 还可以指明 那个fb 等等 )或者  程序后  加上  -platform=linuxfb  或者其他显示系统 wayland  X11 等等。

把交叉编译Qt的 产物 /plugins/platforms/  拷贝到程序执行目录下 。解决

failed to start because it could not find or load the Qt platform plugin "linuxfb"
in "".

完美执行。

最新文章

  1. MVC, MVP, MVVM比较以及区别
  2. Network Experiment Environment Construction
  3. ajax与后台交互传输数据的工具类
  4. AMQP与RabbitMQ简介
  5. css3新属性@ text-shadow
  6. table share
  7. HDU 5694 BD String 递归暴力
  8. iOS: 学习笔记, Swift名字空间
  9. Http请求工具实例编写(超长,比较清楚)
  10. 解析php混淆加密解密的手段,如 phpjm,phpdp神盾,php威盾
  11. PAT甲级1034 Head of a Gang【bfs】
  12. IDEA汉化教程
  13. 【搬运工】 Can&#39;t connect to local MySQL server through socket &#39;/var/lib/mysql/mysql.sock&#39;
  14. SaaS外包商 承接SaaS产品开发 Software-as-a-Service(软件即服务)
  15. Oracle 生成Guid;Oracle 生成多个Guid;Oracle 生成带&#39;&#39;-&quot;的Guid
  16. aruba 开启802.1X认证
  17. 记录一次Service被注入mapper实例的错误
  18. 并查集(Union-Find)
  19. [算法整理]树上求LCA算法合集
  20. Codeforces 1130 E.Wrong Answer 构造

热门文章

  1. Apache2.2学习笔记全集
  2. perl升级后shutter程序无法运行的修复
  3. change all column to char
  4. ubuntu Oracle SQL Developer 安装
  5. php wordwrap()函数 语法
  6. OC学习篇之---总结和学习目录
  7. Ubuntu下Arm-Linux-GCC交叉编译环境的搭建
  8. Navicat12破解教程
  9. BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡(后缀自动机)
  10. js 常用功能实现(函数)