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.12.0.tar.xz到目录/home/workspace/qt-everywhere-src-5.12.0,修改文件:/home/workspace/qt-everywhere-src-5.12.0/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.12.0/configure \
-verbose \
-opensource \
-release \
-shared \
-confirm-license \
-eglfs \
-linuxfb \
-openvg \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-prefix /opt/qt-5.12.0-imx6

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

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

编译源码

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

添加系统字体

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

配置开发板

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

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

2、配置/etc/profile

  • 使用eglfs启动OpenGL功能:
export QT_ROOT=/opt/qt-5.12.0-imx6
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/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=$QT_ROOT/lib:$LD_LIBRARY_PATH
  • 使用linuxfb功能:
export QT_ROOT=/opt/qt-5.12.0-imx6
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins/platforms
export QT_QPA_PLATFORM=linuxfb
export XDG_RUNTIME_DIR=/tmp
export LD_LIBRARY_PATH=$QT_ROOT/lib:$LD_LIBRARY_PATH
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值