海思Hi3559AV100移植Qt5.9.1

目录

一、交叉编译QT库

二、安装QT Creator

三、部署开发板环境


一、交叉编译QT库

        1. cd qt-everywhere-opensource-src-5.9.1/qtbase/mkspecs

        2. cp -r linux-arm-gnueabi-g++ aarch64-himix100-linux

        3. cd aarch64-himix100-linux/

        4. vim qmake.conf(修改qmake配置)

#

# qmake configuration for building with arm-linux-gnueabi-g++

#


MAKEFILE_GENERATOR      = UNIX

CONFIG                 += incremental

QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)

include(../common/gcc-base-unix.conf)

include(../common/g++-unix.conf)

DEFINES += EGL_FBDEV


# gpu  注意路径为Hi3559的SDK目录

QMAKE_INCDIR_EGL += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/include

QMAKE_LIBDIR_EGL += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/lib

QMAKE_LIBS_EGL   += -lmali

QMAKE_INCDIR_OPENGL_ES2 += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/include

QMAKE_LIBDIR_OPENGL_ES2 += /home/xx/Desktop/Hi3559AV100_SDK_V2.0.3.0/mpp/component/gpu/release/lib

QMAKE_LIBS_OPENGL_ES2 += -lmali

EGLFS_DEVICE_INTEGRATION = eglfs_mali

# modifications to g++.conf

QMAKE_CC                = aarch64-himix100-linux-gcc

QMAKE_CXX               = aarch64-himix100-linux-g++

QMAKE_LINK              = aarch64-himix100-linux-g++

QMAKE_LINK_SHLIB        = aarch64-himix100-linux-g++


# modifications to linux.conf

QMAKE_AR                = aarch64-himix100-linux-ar cqs

QMAKE_OBJCOPY           = aarch64-himix100-linux-objcopy

QMAKE_NM                = aarch64-himix100-linux-nm -P

QMAKE_STRIP             = aarch64-himix100-linux-strip

load(qt_config)

        5. vim autoconfigure.sh(自动编译脚本)

#!/bin/sh

./configure \

-v \

-prefix /opt/arm_qt/qt-5.9.1 \

-release \

-opensource \

-no-accessibility \

-make libs \

-no-iconv \

-no-separate-debug-info \

-no-opengl \

-no-sse2 \

-no-openssl \

-no-cups \

-no-glib \

-no-xcb \

-xplatform aarch64-himix100-linux \

-optimized-qmake \

-linuxfb \

-pch \

-qt-sqlite \

-qt-libjpeg \

-qt-libpng \

-qt-zlib

        6. ./ autoconfigure.sh(启动脚本)

        7. make -j4

        8. make install

注意事项:

        1. 修改qmake.conf时,其中的hisix100视情况而定。

        2. 创建一个脚本文件之后需要chmod 7777 xxx,给他修改权限,否则可能会报错找不到该文件。

        3. make(make -j4,多线程)命令执行完之后,如果出现:

Project ERROR: Unknown module(s) in QT: serialport

makefile:44: recipe for target ‘sub-serialbus-make_first’ failed

make[2]: * [sub-serialbus-make_first] Error 3

makefile:44: recipe for target ‘sub-src-make_first’ failed

make[1]: * [sub-src-make_first] Error 2

makefile:222: recipe for target ‘module-qtserialbus-make_first’ failed

make: * [module-qtserialbus-make_first] Error 2

表示serialport 模块未安装;解决方法:sudo apt-get install libqt5serialport5-dev libudev-dev,但是安装完成后再次编译依然是以上错误,好删除编译过的文件,重新解压安装包,再次编译。

sh: python: command not foundProject ERROR: Building QtQml requires Python.make: *** [makefile:335: module-qtdeclarative-make_first] Error 3

解决方法:sudo apt-get install python

        4. 如果make时提示权限不够,需要使用sudo make,但是使用sudo会报找不到arm-linux-hisivX00-XXX这个错误,这时候可以先sudo su ,source /etc/profile,然后再make

         5. 当虚拟机/opt/arm_qt/qt-5.9.1/lib/ 目录下面出现了关于QT的库说明交叉编译文件生成成功。

二、安装QT Creator

./qt-opensource-linux-x64-5.12.6.run(5.12.6的版本号仅供参考)

出现安装界面后,只需next/skip即可安装成功,安装完成之后还需要再对QT Creator进行设置。

        1. Tools->Options->Build&Run->Compilers->add添加hisi的编译工具

add->GCC->Compiler path: /opt/hisi-linux/x86-arm/aarch64-himix100-linux/aarch64-himix100-linux-g++(该路径仅供参考)

        2. Tools->Options->Build&Run->Debuggers->add添加hisi的调式工具

Path: /opt/hisi-linux/x86-arm/arm-hisi400-linux/bin/aarch64-himix100-linux-gdb(该路径仅供参考)

        3. Tools->Options->Build&Run->QT Version->add添加QT的版本信息

/opt/arm_qt/qt-5.9.1/bin/qmake(该路径仅供参考)

        4. Tools->Options->Build&Run->Kit->add添加构建套件

Name: hisix100(自填)

Compiler: 选择第一步添加的编译工具

Debuggers: 选择第二步添加的调试工具(选填)

QT version: 选择第三步添加的版本号

其他选项默认即可。

        如果添加完编译工具的数据之后,在Manual下面的hisix100前面出现了红色的感叹号,说明该编译工具不可用,而且应该是添加编译工具时的路径选择有问题或者是没有修改版本号所致。

三、部署开发板环境

主要内容:

  1. 拷贝qt库到目标板(lib)
  2. 拷贝字体到目标板
  3. 拷贝插件到目标板(plugins)
  4. 新建文件夹(mkdir /mnt/arm-qt)
  5. 配置目标板环境变量
export LD_LIBRARY_PATH

export QT_ROOT=/mnt/arm-qt

export PATH=$QT_ROOT/bin:$PATH

export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:/mnt/lib

export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins

export QT_QPA_FONTDIR=$QT_ROOT/fonts

export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0:mmsize=1920x1080

注意事项:

        1. 配置环境变量时,我是直接写到profile里的(建议配置启动脚本),不然每启动一个客户端时都需要重新配置一次;多个变量之间可以用冒号分隔。

        2. 注意窗口污染问题,如果demo一直出错的话,可以尝试重新开一个session窗口,然后再运行测试demo

你可能感兴趣的:(QT,qt,linux,开发语言)