Qt5.9.4在imx6ul上的移植

最近应老大的要求移植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一栏下

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

Qt5.9.4在imx6ul上的移植

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

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

Qt5.9.4在imx6ul上的移植

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

Qt5.9.4在imx6ul上的移植

红框里的打*号

重新编译烧写内核

之后进入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了,但是稳定性未知,还需要时间的检验。