qt之imx6库编译

编译前配置

        安装和配置交叉编译工具链:poky-glibc-x86_64-meta-toolchain-cortexa9hf-vfp-neon-toolchain-1.7.sh
        下载和设置适合imx6的文件系统:fsl-image-gui-imx6qsabresd.tar.bz2
        解压源码,例如:qt-everywhere-src-5.14.1.tar.xz到目录/home/workspace/qt-everywhere-src-5.14.1,修改文件:/home/workspace/qt-everywhere-src-5.14.1/qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf,如下:

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

MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib

# 配置交叉编译参数
IMX6_CFLAGS = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
IMX6_CFLAGS_RELEASE = -O2 $$IMX6_CFLAGS

QMAKE_CFLAGS_DEBUG += $$IMX6_CFLAGS
QMAKE_CXXFLAGS_DEBUG += $$IMX6_CFLAGS
QMAKE_CFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# 配置交叉编译工具路径
POKY_PATH = /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
# 配置交叉编译文件系统
ROOTFS_PATH = /opt/fsl-image-gui-imx6qsabresd

# 配置交叉编译工具
# modifications to g++.conf
QMAKE_CC = $$POKY_PATH/arm-poky-linux-gnueabi-gcc -mfloat-abi=hard
QMAKE_CXX = $$POKY_PATH/arm-poky-linux-gnueabi-g++ -mfloat-abi=hard
QMAKE_LINK = $$POKY_PATH/arm-poky-linux-gnueabi-g++ -mfloat-abi=hard
QMAKE_LINK_SHLIB = $$POKY_PATH/arm-poky-linux-gnueabi-g++ -mfloat-abi=hard

# modifications to linux.conf
QMAKE_AR = $$POKY_PATH/arm-poky-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = $$POKY_PATH/arm-poky-linux-gnueabi-objcopy
QMAKE_NM = $$POKY_PATH/arm-poky-linux-gnueabi-nm -P
QMAKE_STRIP = $$POKY_PATH/arm-poky-linux-gnueabi-strip

# 配置依赖头文件和库目录
QMAKE_INCDIR += $$ROOTFS_PATH/usr/include
QMAKE_LIBDIR += $$ROOTFS_PATH/usr/lib

# 配置依赖库引用(下面是引用OpenGL库,还可以引用其他库)
QMAKE_LIBS_EGL += -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1 += -lGLESv1_CM -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1CL += -lGLES_CL -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES2 += -lGLESv2 -lEGL -lGAL -lVSC
QMAKE_LIBS_OPENVG += -lOpenVG -lEGL -lGAL -lVSC

load(qt_config)

        创建构建目录,例如:/home/workspace/qt-build命令选项说明。通过终端进入构建目录,输入命令:

./../qt-everywhere-src-5.14.1/configure \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-eglfs \
-linuxfb \
-openvg \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-prefix /opt/qt-5.14.1-imx6

        若不开启OpenGL功能,则输入命令:

./../qt-everywhere-src-5.14.1/configure \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-linuxfb \
-make libs \
-no-opengl \
-xplatform linux-arm-gnueabi-g++ \
-prefix /opt/qt-5.14.1-imx6

编译源码

        配置成功后,输入命令:make内存最好大于4G以上,不然在某些情况下编译可能会不过,即进入编译流程,等候大约三四个小时,编译成功后,输入命令:make install,即可把qt库安装到目录:/opt/qt-5.14.1-imx6

添加系统字体

        进入目录:/opt/qt-5.14.1-imx6/lib,创建字体目录fonts,可以把.ttf字体文件拷贝到字体目录中。

配置开发板

1、把安装后的qt的相关库拷贝到目标板指定目录,例如:

  • 创建目录:/opt/qt-5.14.1-imx6。
  • 拷贝文件夹:lib,plugins,qml到所创建目录。

2、配置/etc/profile

  • 使用eglfs启动OpenGL功能:
export QTDIR=/opt/qt-5.14.1-imx6
export QT_PLUGIN_PATH=$QTDIR/plugins
export QML2_IMPORT_PATH=$QTDIR/qml
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/platforms
export QT_QPA_PLATFORM=eglfs
export QT_QPA_EGLFS_INTEGRATION=eglfs_viv
export QT_QPA_EGLFS_FORCEVSYNC=1
export FB_MULTI_BUFFER=2
export XDG_RUNTIME_DIR=/tmp
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
  • 使用linuxfb功能:
export QTDIR=/opt/qt-5.14.1-imx6
export QT_PLUGIN_PATH=$QTDIR/plugins
export QML2_IMPORT_PATH=$QTDIR/qml
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/platforms
export QT_QPA_PLATFORM=linuxfb
export XDG_RUNTIME_DIR=/tmp
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
发布了32 篇原创文章 · 获赞 1 · 访问量 4551

猜你喜欢

转载自blog.csdn.net/hezhanran/article/details/105051843