imx6ul之Qt5.9.4移植

最近应老大的要求移植qt5.9.4到开发板上,话不多说进入正题。

开发板:TQ IMX6UL

交叉编译器:gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf

linux内核:linux-4.1.15

根文件系统:使用buildroot制作

1.进入buildroot目录使用make menuconfig命令在System Configure一栏下

imx6ul之Qt5.9.4移植_第1张图片注意Init System是否是SystemV。systemV是进程间通信的一种机制,并且在我发现编译出来的QT动态库是这样的:

而某些动态库是红框里是GNU/LINUX,我之前编译过一版Qt,用linaro5.3.1的交叉编译器编译出来是GNU/LINUX。在systemV的通信机制下可能会加载不到(事实上我试了也是加载不到)

然后修改Qt的qmake.conf配置文件,瞎改后的文件内容如下:

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

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

IMX6UL_CFLAGS             = -march=armv7-a -mtune=cortex-a7
IMX6UL_CFLAGS_RELEASE     = -O2 $$IMX6UL_CFLAGS 
QMAKE_CFLAGS_RELEASE   += $$IMX6UL_CFLAGS_RELEASE 
QMAKE_CXXFLAGS_RELEASE += $$IMX6UL_CFLAGS_RELEASE 
QMAKE_CFLAGS_DEBUG     += $$IMX6UL_CFLAGS 
QMAKE_CXXFLAGS_DEBUG   += $$IMX6UL_CFLAGS


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

# modifications to g++.conf
QMAKE_CC                = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
QMAKE_CXX               = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK              = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
QMAKE_LINK_SHLIB        = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++

# modifications to linux.conf
QMAKE_AR                = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-ar cqs
QMAKE_OBJCOPY           = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-objcopy
QMAKE_NM                = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-nm -P
QMAKE_STRIP             = /opt/gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-strip
load(qt_config)

之后修改内核配置,进入内核目录make menuconfig 

imx6ul之Qt5.9.4移植_第2张图片

红框里的打*号

重新编译烧写内核

之后进入Qt目录,./configure -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix your_install_dir -no-opengl -L${TARGET_TOP}/core/software/tslib/lib -I${TARGET_TOP}/core/software/tslib/include -tslib

因为我手上的开发板是电阻屏所以需要使用-tslib

make && make install 

编译完成后进入安装目录下将plugins拷到开发板的/usr目录下,安装目录下的lib所有文件拷到/usr/lib,配置环境变量

在开发板的/etc/profile目录添加如下两行:

 

export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins

export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0

source /etc/profile。

一般来说这样的套路就能够在板子上跑起Qt5.9.4了,但是稳定性未知,还需要时间的检验。如果编译错误,排除问题,建议将整个QT目录删掉再重新配置编译一遍。

你可能感兴趣的:(imx6ul)