测试平台

宿主机平台:Ubuntu 12.04.4 LTS

目标机:Easy-ARM IMX283

目标机内核:Linux 2.6.35.3

交叉编译器:arm-linux-gcc 4.4.4

tslib 1.4 下载  https://gitlab.com/tslib/tslib/-/archive/1.4/tslib-1.4.tar.gz

qt-4.7.3 源码下载  http://download.qt.io/archive/qt/4.7/qt-everywhere-opensource-src-4.7.3.tar.gz

1. tslib移植

详细参照上节《tslib移植arm及使用》

./autogen.sh
./configure --prefix=/home/vmuser/workspace/vm_tools/tslib --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-fsl-linux-gnueabi-gcc
make
make install

2. QT源码编译与安装

1.编译qt

1)解压:

tar xzvf qt-everywhere-opensource-src-4.7.3.tar.gz
cd qt-everywhere-opensource-src-4.7.3

2)编译配置(裁剪QT)

./configure -prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm -opensource -confirm-license -release -shared -embedded arm -xplatform qws/linux-arm-gnueabi-g++ -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake -pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype -no-largefile -no-accessibility -no-qt3support -no-webkit -no-mmx -no-3dnow -no-sse -no-sse2 -no-glib -no-libtiff -no-libmng -no-openssl -nomake examples -nomake docs -nomake demos -no-separate-debug-info -no-qvfb -no-cups -no-gtkstyle -no-xrender -no-glib -qt-mouse-pc -qt-mouse-linuxtp -qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput -qt-gfx-linuxfb -qt-gfx-transformed -D QT_QWS_CLIENTBLIT -I /home/vmuser/workspace/vm_tools/tslib/include -L /home/vmuser/workspace/vm_tools/tslib/lib

或编写 shell 脚本

./configure    \
-prefix /home/vmuser/workspace/vm_tools/qt-4.7.3-arm \
-opensource -confirm-license -release -shared -embedded arm  \
  -xplatform qws/linux-arm-gnueabi-g++    \
  -depths 16,18,24,32 -fast -lrt -little-endian -optimized-qmake \
-pch -qt-sql-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-freetype \
-no-largefile -no-accessibility -no-qt3support -no-webkit \
-no-mmx -no-3dnow -no-sse -no-sse2 \
-no-libtiff -no-libmng -no-openssl \
-nomake examples -nomake docs -nomake demos \
-no-separate-debug-info -no-qvfb -no-cups \
  -no-gtkstyle -no-xrender -no-glib \
-qt-mouse-pc -qt-mouse-linuxtp \
-qt-mouse-tslib -qt-mouse-linuxinput -qt-kbd-linuxinput \
-qt-gfx-linuxfb -qt-gfx-transformed \
  -D QT_QWS_CLIENTBLIT \
  -I /home/vmuser/workspace/vm_tools/tslib/include \
  -L /home/vmuser/workspace/vm_tools/tslib/lib

备注:最后3句是指定使用触摸屏,并制定tslib1.4的安装目录的头文件以及库函数。

裁剪qt编译配置详解

编译安装配置:

-prefix <dir>    qt 编译安装路径(默认 /usr/local/Trolltech/Qt-4.7.3)

-opensource   编译和链接qt的开源版本(商业版使用 -commercial )

-confirm-license

-release          编译和链接qt时关闭调试功能

-shared    创建和使用qt共享库(-static 创建和使用qt静态库)

-embeddedarm

-xplatform qws/linux-arm-gnueabi-g++  (使用arm下的编译器进行编译否则无法在板子上运行)

-depths 4,8,16,18,24,32

-fast         通过只为库和子目录目标生成makefile文件来快速配置qt,所有其他生成文件都创建为包装器,运行qmake。(-no-fast   配置qt 为所有工程文件生成makefile)

-little-endian   (小端存储)

-optimized-qmake     (构建qmake优化)

以下为加入的一些插件:

-pch                  (使用预编译头支持)

-qt-sql-sqlite     (加入qt下的数据库)

-qt-gif                 (默认支持gif图片)

-qt-libjpeg        ( jpeg图片)

-qt-zlib             (数据压缩)

-qt-libpng         (png形式的图片)

-qt-freetype       (FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎)

-little-endian      (小端存储)

-host-little-endian    (主机小端存储)

去掉以下插件因为设计到ARM开发板是否支持的问题

-no-largefile  禁止大文件支持

-no-accessibility  不编译辅助功能支持

-no-qt3support   禁止qt3支持功能

-no-libtiff           (去掉读写标签图像文件格式的库)

-no-libmng      (制作一些动画的库)

-no-opengl     (OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库,此处不用它)

-no-webkit   不构建webkit模块 (WebKit 是一个开源的浏览器引擎)(构建 -webkit)

-no-svg       不构建svg模块 (构建 -svg)

-no-mmx    不使用mmx指令编译(多媒体扩展用于图形描绘)

-no-3dnow  不使用3dnow指令编译(3Dnow指令集技术其实就是21条机器码的扩展指令集)

-no-sse        (SSE是指令集的简称,它包括70条指令,其中包含单指令多数据浮点计算、以及额外的SIMD整数和高速缓存控制指令)

-no-sse2      (SIMD 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集)

-no-openssl         (为网络通信提供安全及数据完整性的一种安全协议)

-no-qvfb            ( Qvfb是为qtopia做的一个虚拟frambuffer的应用程序,它的最终目的就是把qtopia应用程序运行的的结果显示在qvfb上(实际中是要通过linux的frambuffer驱动显示在lcd屏上的),并提供键盘、鼠标的外设仿真。从而方便研发阶段,用户在pc端就可以完成qtopia的调试工作,极大的提高了工作效率。 )

-no-phonon   (音频播放的依赖库里面有很多直接可以控制音频播放的函数,做过播放器的人肯定熟悉)

-no-nis         (一种类似防火墙的工具网上说是诺顿网络安全特警简称)

-no-cups      (CUPS(Common UNIX Printing System)是Fedora Core3中支持的打印系统,它主要是使用IPP(Internet Printing Protocol)来管理打印工作及队列)

-no-glib        (用于GTK 开发环境)

-no-xcursor  (不清处用途,应该是一种软件依赖的文件)

-no-xfixes   (XFixes is an X window system extension which makes useful additions to the X11 protocol)

-no-xrandr   (窗口大小分辨率的调整)

-no-xrender

-no-separate-debug-info  不保存调试信息到单独的.debug文件

-no-gtkstyle  不构建集成的GTK主题

-nomake examples  不生成例程代码

-nomake tools   不生成工具

-nomake docs   不生成文档

设置 tslib为鼠标驱动、校正

-qt-mouse-tslib

-I /home/vmuser/workspace/vm_tools/tslib/include

-L /home/vmuser/workspace/vm_tools/tslib/lib

修改源代码

修改qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf 文件(添加lts参数):

-lts 表示链接ts库

3)make

4)make install

QT 4.7.3 交叉编译环境搭建的更多相关文章

  1. YA157C交叉编译环境搭建

    目录 1.开发板简介 3.主机搭建交叉编译环境 4.编译第一个ARM Linux程序--Hello World 5.在开发板上运行Hello World程序 6.ssh登录开发板 7.注意 8.she ...

  2. Exynos4412交叉编译环境搭建

    Exynos4412交叉编译环境搭建 交叉编译:在PC机(x86平台)上开发程序,在ARM板上运行,提高开发.编译速度. 环境: Tiny4412SDK1506开发板 需要软件: arm-linux- ...

  3. Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程

    搭建所需环境Linux版本:Ubuntu 14.10 交叉编译器版本:arm-linux-gcc-4.4.3资源链接 何为交叉编译环境搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下 ...

  4. iMX6 yocto平台QT交叉编译环境搭建

    转:https://blog.csdn.net/morixinguan/article/details/79351909 . /opt/fsl-imx-fb/4.9.11-1.0.0/environm ...

  5. Zedboard学习(二):zedboard的Linux下交叉编译环境搭建 标签: 交叉编译linuxzedboard 2017-07-04 23:49 19人阅读

    环境准备 首先肯定是要下载xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin文件,这是官方提供的linux下交叉编译链安装文件,下载地址为:https://p ...

  6. Android独立交叉编译环境搭建

    我们经常需将一些C/C++源码编译成本地二进制,直接在android的linux内核上运行,这是就需要进行交叉编译.由于Android的运行环境核普通Linux又区别,所以常规方式针对ARM进行交叉编 ...

  7. Zynq7000开发系列-4(新:Xilinx交叉编译环境搭建)

    一.前言  本来上一篇文章已经讲了Xilinx交叉编译环境的搭建,但是我在后续的使用中发现:使用2011年版本的交叉编译链编译OpenCV 3.1.0时出现错误: 网络搜索一番,查明是交叉编译链的问题 ...

  8. Zynq7000开发系列-3(Xilinx交叉编译环境搭建)

    一.前言 上一篇文章说了,在开发之前必须先搭建起交叉编译环境,于是这里我们就介绍一下环境的搭建过程. 其实在所安装的Vivado HLx 2016.4中就包含了Xilinx SDK,在该SDK上即可开 ...

  9. qt4.7.0 交叉编译环境搭建经验总结

    一.前期软件准备: 1 .虚拟机fedora9.到fedora官网下载,地址 http://fedoraproject.org/   版本推荐使用fedora9,在vm内安装,并且不安装vmware ...

随机推荐

  1. Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)

    受影响版本 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < ...

  2. ffmpeg 任意文件读取漏洞/SSRF漏洞 (CVE-2016-1897/CVE-2016-1898)

    影响版本 在FFMpeg2.X poc http://192.168.49.2:8000/?name={%25%20for%20c%20in%20[].__class__.__base__.__sub ...

  3. 5G时代,视频会议的未来

    过去,2G打开了了移动互联网天下,3G促成了即时通信,诞生了QQ.微信等巨头,4G 带来了短视频兴起,字节跳动等公司崛起.2.3.4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促成至少10年 ...

  4. Mybatis学习笔记-ResultMap结果集映射

    解决属性名与字段名不一致的问题 新建项目 --> 测试实体类字段不一致的情况 数据库字段:id,name,pwd 实体类属性:id,name,password 输出结果 User{id=1, n ...

  5. 如何从二维平面n个点中寻找距离最近两个点?

    如何理解分治算法 什么是分治算法?简单来说就是"分而治之",也就是将原问题划分成n个规模较小的,并且结构与原问题相似的子问题,然后去递归地解决这些子问题,最后再合并其结果,就得到原 ...

  6. Nginx 文件名逻辑漏洞(CVE-2013-4547)

    影响版本 Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7 漏洞成因 这个漏洞其实和代码执行没有太大关系,其主要原因是错误地解析了请求的URI,错误地获取到用户请求的文件名,导 ...

  7. PHP-Audit-Labs-Day1 - in_array函数缺陷

    函数缺陷原理分析 先看一段简单的源代码 class Challenge{ const UPLOAD_DIRECTORY = './solutions/'; private $file; private ...

  8. HCNA Routing&Switching之DHCP服务

    前文我们了解了STP的端口状态.计时器以及端口状态切换和网络拓扑变化相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15140672.html:今天我们 ...

  9. Build a ZenTao Server on Linux

    Download xampp for linux on Apache Friends, file name: xampp-linux-1.8.3-2-installer.run; Intallatio ...

  10. Greenplum 6安装指南(CentOS 7.X)

    一.基本概念 Greenplum是一个面向数据仓库应用的关系型数据库,因为有良好的体系结构,所以 在数据存储.高并发.高可用.线性扩展.反应速度.易用性和性价比等方面有非常 明显的优势.Greenpl ...