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编译
参考:
http://bbs.csdn.net/topics/390327386
- I.MX6Q SABRE Lite在Ubuntu下编译QT4.8.4
- Linaro on Freescale i.MX6Q Sabre Lite Board
- i.MX6q SABRE Board for Smart Devices
- i.MX6Q OpenCL with QT4.8.4
- 在i.MX6Q上安装ubuntu(linaro)12.04
- 针对i.MX6Q平台的Qt4.8.5开发环境搭建
- Freescale i.MX6Q Android 4.3.2编译:
- ubuntu下搭建Qt4交叉编译平台
- Ubuntu 下 QT4 编译错误解决方法
- Ubuntu 12.04 下编译 (安装)Qt4.8.2
- Ubuntu Linux下编译安装QT4.8.6
- Linux/Ubuntu下编译Qt4.8.2源码
- 在Ubuntu 14.04下编译U-BOOT for i.MX6UL
- qt4在ubuntu下的使用
- 天嵌i.mx6q开发板android4.3编译问题
- [I.MX6Q][Android6.0.1_r3]之源码获取及编译
- [I.MX6Q][Android6.0.1_r3]之源码获取及编译
- [I.MX6Q][Android6.0.1_r3]之源码获取及编译
- android 多线程下载 显示进度 速度
- (四)Intellij 模板注释
- vsftpd 用户访问上级目录
- linux 64 位和32 系统的关于类型的不同
- 五子棋代码
- I.MX6Q SABRE Lite在Ubuntu下编译QT4.8.4
- 简单但比较高效的解决:随机获取N个数字,这些数字在指定的范围内,获取的数字不能重复
- Phonegap旋转屏闪退
- Navigation backBarButtonItem 设置
- C# 独占方式打开 Access
- Orlace 数据库连接的那些事儿:客户端(二)
- UIBezierPath2
- 编码的发展史
- assign copy retain