I.MX6Q SABRE Lite在Ubuntu下编译QT4.8.4

来源:互联网 发布:cp linux 复制文件夹 编辑:程序博客网 时间:2024/09/21 09:03

英蓓特 I.MX6Q SabreLite开发板

1. 下载qt4.8.4源码  http://download.qt.io/archive/qt/4.8/4.8.4/qt-everywhere-opensource-src-4.8.4.tar.gz


2.创建目录/home/wps/qt/ , 将下载的源码解压到此目录, /home/wps/qt/qt-everywhere-opensource-src-4.8.4为解压后所在目录


3.创建目录/home/wps/qt/qt-4.8.4_sabrelite ,此为安装目录


4.下载 Building QT for I.MX6 中附件linux-imx6-g++.tar.gz   和 0001-add-i.MX6-EGL-support.patch.zip ,并解压linux-imx6-g++.tar.gz 到/home/wps/qt/qt-everywhere-opensource-src-4.8.4/mkspecs/qws下 ,由于Building QT for I.MX6 中所述的过程基于Freescale的LTIB ,我们使用的是英蓓特Embest 公司提供的i.MX6QSABRELite-development-environment.sh 开发环境.自带交叉编译工具 ,因此需要改变linux-imx6-g++.tar.gz 中的qmake.conf 中的配置信息 .

修改方式如下:

原内容如下:

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

#export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-
#export ROOTFS=/dv/nfs/bt

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

# modifications to g++.conf
QMAKE_CC                = arm-fsl-linux-gnueabi-gcc
QMAKE_CXX               = arm-fsl-linux-gnueabi-g++
QMAKE_LINK              = arm-fsl-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-fsl-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = arm-fsl-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-fsl-linux-gnueabi-objcopy
QMAKE_STRIP             = arm-fsl-linux-gnueabi-strip

QMAKE_INCDIR                = /tftpboot/rootfs/usr/include
QMAKE_INCDIR                +=/tftpboot/rootfs/usr/include/arm-linux-gnueabi/
QMAKE_LIBDIR                = /tftpboot/rootfs/usr/lib
QMAKE_LIBDIR                +=/tftpboot/rootfs/usr/lib/arm-linux-gnueabi/
#QMAKE_INCDIR_OPENGL         = /tftpboot/rootfs/usr/include/GL
#QMAKE_LIBDIR_OPENGL         =/tftpboot/rootfs/usr/lib
#QMAKE_INCDIR_OPENGL_ES1     = /tftpboot/rootfs/usr/include/GLES
#QMAKE_LIBDIR_OPENGL_ES1     = /tftpboot/rootfs/usr/lib
#QMAKE_INCDIR_OPENGL_ES1CL   = /tftpboot/rootfs/usr/include/GLES
#QMAKE_LIBDIR_OPENGL_ES1CL   = /tftpboot/rootfs/usr/lib
#QMAKE_INCDIR_OPENGL_ES2     = /tftpboot/rootfs/usr/include/GLES2
#QMAKE_LIBDIR_OPENGL_ES2     = /tftpboot/rootfs/usr/lib
#QMAKE_INCDIR_EGL            = /tftpboot/rootfs/usr/include/EGL
#xQMAKE_LIBDIR_EGL            =/tftpboot/rootfs/usr/lib

QMAKE_LIBS_OPENGL_ES1       += -lGLESv1_CM -lEGL -lGAL
QMAKE_LIBS_OPENGL_ES1CL     += -lGLES_CL -lEGL -lGAL
QMAKE_LIBS_EGL              += -lEGL
QMAKE_LIBS_OPENGL_ES2       += -lGLESv2 -lEGL -lGAL
QMAKE_LIBS_OPENVG           += -lOpenVG -lEGL -lGAL

IMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1
IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGS
QMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASE
QMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASE
QMAKE_CFLAGS_DEBUG     += $$IMX6_CFLAGS
QMAKE_CXXFLAGS_DEBUG   += $$IMX6_CFLAGS

load(qt_config)

本文默认已经正确安装英蓓特公司提供开发环境 .上文中红色部分表示需要修改内容 ,修改内容如下:

## qmake configuration for building with arm-none-linux-gnueabi-g++##export CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-#export ROOTFS=/dv/nfs/btinclude(../../common/linux.conf)include(../../common/gcc-base-unix.conf)include(../../common/g++-unix.conf)include(../../common/qws.conf)# modifications to g++.confQMAKE_CC                = armv7l-timesys-linux-gnueabi-gccQMAKE_CXX               = armv7l-timesys-linux-gnueabi-g++QMAKE_LINK              = armv7l-timesys-linux-gnueabi-g++QMAKE_LINK_SHLIB        = armv7l-timesys-linux-gnueabi-g++# modifications to linux.confQMAKE_AR                = armv7l-timesys-linux-gnueabi-ar cqsQMAKE_OBJCOPY           = armv7l-timesys-linux-gnueabi-objcopyQMAKE_STRIP             = armv7l-timesys-linux-gnueabi-stripQMAKE_INCDIR                = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/includeQMAKE_INCDIR                +=/home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/arm-linux-gnueabi/QMAKE_LIBDIR                = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/libQMAKE_LIBDIR                +=/home/wps/timesys/i_MX6QSABRELite/toolchain/usr/lib/arm-linux-gnueabi/#QMAKE_INCDIR_OPENGL         = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/GL#QMAKE_LIBDIR_OPENGL         = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/lib#QMAKE_INCDIR_OPENGL_ES1     = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/GLES#QMAKE_LIBDIR_OPENGL_ES1     = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/lib#QMAKE_INCDIR_OPENGL_ES1CL   = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/GLES#QMAKE_LIBDIR_OPENGL_ES1CL   = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/lib#QMAKE_INCDIR_OPENGL_ES2     = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/GLES2#QMAKE_LIBDIR_OPENGL_ES2     = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/lib#QMAKE_INCDIR_EGL            = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/include/EGL#xQMAKE_LIBDIR_EGL            = /home/wps/timesys/i_MX6QSABRELite/toolchain/usr/libQMAKE_LIBS_OPENGL_ES1       += -lGLESv1_CM -lEGL -lGALQMAKE_LIBS_OPENGL_ES1CL     += -lGLES_CL -lEGL -lGALQMAKE_LIBS_EGL              += -lEGLQMAKE_LIBS_OPENGL_ES2       += -lGLESv2 -lEGL -lGALQMAKE_LIBS_OPENVG           += -lOpenVG -lEGL -lGALIMX6_CFLAGS             = -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1IMX6_CFLAGS_RELEASE     = -O2 $$IMX6_CFLAGSQMAKE_CFLAGS_RELEASE   += $$IMX6_CFLAGS_RELEASEQMAKE_CXXFLAGS_RELEASE += $$IMX6_CFLAGS_RELEASEQMAKE_CFLAGS_DEBUG     += $$IMX6_CFLAGSQMAKE_CXXFLAGS_DEBUG   += $$IMX6_CFLAGSload(qt_config)


打补丁:

在目录/home/wps/qt/qt-everywhere-opensource-src-4.8.4 下输入补丁命令

$ patch -p1<0001-add-i.MX6-EGL-support.patch


5. 下一步为QT配置 :

在/home/wps/qt/qt-everywhere-opensource-src-4.8.4下输入命令如下,其中Building QT for I.MX6 中没有加上 -no-pch ,我编译时出错

./configure -qpa -arch arm -xplatform qws/linux-imx6-g++ -no-largefile -no-accessibility -opensource -verbose -system-libpng -system-libjpeg -system-freetype -fast -opengl es2 -egl -confirm-license -qt-zlib -qt-libpng -no-webkit -no-multimedia -make examples -make demos -release -make libs -exceptions -no-qt3support -no-pch -prefix /home/wps/qt/qt-4.8.4_sabrelite


6. 使用 make -j4编译 ,-j4 根据电脑配置调整

完成后  make install ,则/home/wps/qt/qt-4.8.4_sabrelite中为所需内容


7. 根据QT 通常配置, 编译器为/home/wps/timesys/i_MX6QSABRELite/toolchain/bin/armv7l-timesys-linux-gnueabi-g++

QT 的qmake版本为/home/wps/qt/qt-4.8.4_sabrelite/bin/qmake

配置Kits


8. 完成I.MX6 SabreLite 使用i.MX6QSABRELite-development-environment.sh 开发环境下的QT4.8.4编译


参考:

https://community.freescale.com/docs/DOC-94066

http://bbs.csdn.net/topics/390327386

0 0
原创粉丝点击