• QT 4.7.3 交叉编译环境搭建


    测试平台

    宿主机平台: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

  • 相关阅读:
    Windows 2003,XP安装Windows Phone 7 狼人:
    Android实例剖析笔记(六) 狼人:
    Android实例剖析笔记(一) 狼人:
    Android NDK带来什么 狼人:
    Windows Phone 7常用资源大集合 狼人:
    Android实例剖析笔记(七) 狼人:
    JDK环境变量配置
    jQuery去掉字符串起始和结尾的空格
    结构型设计模式
    主题:hibernate生成tree(基于注解方式)
  • 原文地址:https://www.cnblogs.com/silencehuan/p/11223919.html
Copyright © 2020-2023  润新知