一、移植Qt4.5.3

 1、获得 Qt4.5.3 的源码Qt4.5.3源码的原始包 qt-embedded-opensource-src-4.5.3.tar.gz 将其复制到 /opt 下,

    然后在linux终端上输入例如以下命令(不用键入#),在/opt/下解压Qt4.5.3的源代码包

    # cd /opt/

    # tar xvzf /opt/qt-embedded-opensource-src-4.5.3.tar.gz





 2、交叉编译Qt4.5.3

    2.1、#vim mkspecs/qws/linux-arm-g++/qmake.conf,把全部的arm-linux-**改为arm-hisiv100nptl-linux-**





    2.2、#vim examples/examples.pro,

    删除行

    contains(QT_CONFIG, webkit): SUBDIRS += webkit

    否则编译example webkit时会报错





    2.3、#vim demos/demos.pro。

    删除两行

    contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser

    demos_browser.subdir = browser

    否则编译demo browser会出错





    问题:

    The tslib functionality test failed!You might need to modify the include and library search paths by editing QMAKE_INCDIR and QMAKE_LIBDIR in...





    2.4、tslib安装路径。注意tslib需交叉编译成功

    在../qt-embedded-linux-opensource-src-4.5.3/mkspecs/qws/linux-arm-g++/qmake.conf文件里增加tslib的安装路径

    QMAKE_INCDIR =/home/littlecc/qt/tslib/tmp/include   //这是我tslib安装路径

    QMAKE_LIBDIR =/home/littlecc/qt/tslib/tmp/lib





    当然也可在./configure里增加-I/=/usr/local/tslib/include -L=/usr/local/tslib/lib来解决这个问题,

    在./configure选项里增加-verbose,这样能够比較具体地告诉你错误的原因

    

    注意:后面环境变量设置时会用到这个路径 /opt/Qt4.5.3

 

 2.5、运行configure进行配置

  ./configure --prefix=/opt/Qt4.5.3 -no-pch -xplatform qws/linux-arm-g++ -arch arm -embedded arm -no-freetype -qt-mouse-pc -no-webkit -no-largefile -fast -release -no-qt3support -no-cups  -no-opengl -no-phonon -phonon-backend -no-scripttools -no-libtiff -no-gif
-no-libmng -no-nis -no-cups -no-svg  

       

       

选择:    

    o

    yes

    

    上面的主要參数含义说明例如以下:

    -prefix /opt/Qt4.5.3: 表示Qt4.5.3终于的安装路径是 /opt/Qt4.5.3 ,注意,部置到开

    发板时。也须要把Qt4.5.3放在这个路径上;

    -no-pch

    -xplatform qws/linux-arm-g++: 表示使用arm-linux交叉编译器进行编译;

    -arch arm

    -embedded arm: 表示将编译针对arm平台的embedded版本号;

    -no-freetype

    -qt-mouse-pc

    -no-webkit





    -qt-mouse-tslib: 表示将使用tslib来驱动触摸屏;

    -opensource

    -qt-libtiff

    -qt-libmng

    -qt-mouse-tslib

    -no-mouse-linuxtp

    -no-neon





    运行下面命令进行编译并安装Qt4.5.3:

    # make && make install

    上面命令中出现的&&符号表示仅仅有左边的make 命令运行成功时(返回0),才会运行右边的make

    install命令。

    编译完毕后,Qt4.5.3被安装在 /opt/Qt4.5.3 文件夹下





    提高编译速度:

    使用选项-nomake examples –nomake demos –nomaketools过滤掉样例、演示和工具文件夹。他们不进行编译。

3、环境搭建

    3.1、

    libstdc++.so.6 libstdc++.so.6.0.3并拷贝到海思开发板文件系统/lib下。

    交叉工具链的安装文件夹搜索libgcc_s.so libgcc_s.so.1并拷贝到海思开发板文件系统/lib下。(測试中仅仅用到了libstdc++.so.6库)





    3.2、挂载调试

    将编译出来的qt库拷贝到我的挂载文件夹下

    cp /opt/Qt4.5.3  /home/littlecc/        

   

    做一下软连接,将库连接到海思开发板文件系统/opt文件夹下,为什么呢由于我们配置的时候 -prefix /opt/Qt4.5.3就是这个文件夹,不然会出错

    ln -s /mnt/Qt4.5.3 /opt/Qt4.5.3





    3.3

    环境变量设置 直接改动海思开发板/etc/profile文件

    vi /etc/profile

    加入例如以下:

    QTDIR=/opt/Qt4.5.3      //路径一定要设置对不然程序执行不了

    PATH=$QTDIR/bin:$PATH

    TSLIB_CONSOLEDEVICE=none

    LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib





    以上四句为环境变量声明,网上非常多文章中都还有声明QWS_MOUSE_PROTO、TSLIB_FBDEVICE等,建议不要声明这些变量,

    由于qt会自己主动匹配相关的鼠标设备和framebuffer设备,有时候声明了反而会影响鼠标的正常工作,我的framebuffer和鼠标设备符分别为/dev/fb0和/dev/mice,

    QT能够自己主动识别,确保起见,不是这两个名称的宁可用ln -s做一下软链接,也不要随便去环境变量设置





    此时,就能够測试执行一下了,首先执行一下海思SDK中mpp/sample下的hifb測试程序,把framebuffer 0打开,再执行qt的各个example和demo





    ./api_sample_hifb &

    保证此时能够在显示器上看到測试画面,保证VGA芯片驱动及framebuffer驱动载入执行正确,然后,

    cd /opt/Qt4.5.3/demos/chip/

    ./chip -qws

    就可以在显示器上看到QT的測试画面效果;





    假设执行过程中提示“QFontEngineQPF failed”字样,把src/gui/text/qfontdatabase_qws.cpp打开做一下空写操作。然后又一次上面全部步骤再编译一遍就可以。原因未明。





    注意:

    问题一:/dev/fb0 打开失败问题

    因为海思在操作Framebuffer须要进行对应的配置,假设没有进行对应的配置,那么去打开/dev/fb0是会报错的。

    详细进行了例如以下两个操作步骤:





    (1)、初始化MPP

    (2)、使能输出设备VO

    经过了以上两个步骤以后,打开/dev/fb0才不会出错





    3.4、写一个demo測试一下

    

    #include<QApplication>

    #include<QPushButton>

    #include <stdio.h>

    #include <QtGui>





    int main(int argc, char *argv[])

    {

        QApplication app(argc, argv);

        qDebug() << "hello 3520 I am qt\n";





        return app.exec();

    }

    假设等打印出来,说明你移植成功了。接下来验证gui界面能不能显示出来    

        

GOOD LUCK!!

海思 3520D 移植Qt4.5.3 一的更多相关文章

  1. libx264开发笔记(一):libx264介绍、海思平台移植编译

    前言   在编译ffmpeg时,使用到h264编码时是需要依赖libx264的,本文章是将将libx264作为静态库移植到海思上.   相关博客 <Qt开发笔记之编码x264码流并封装mp4(一 ...

  2. 海思hi3518 移植live555 实现H264的RTSP播放

    用海思的交叉编译工具交叉编译live555 ,结合海思例子venc中的H264部分,完成RTSP的视频数据发布. 用vlc可以播放,但是实时性比较差,慢了5秒

  3. 海思3519A 移植 Qt 5.5.1

    源码下载 网址:qt-everywhere-opensource-src-5.5.1.tar.gz 配置生成MakeFile 文件 解压源码包,在源码包路径下生成配置 MakeFile : ./con ...

  4. 海思3519A 移植ffmpeg

    文件下载 下载x264 git clone git://git.videolan.org/x264.git 下载ffmpeg git clone git://source.ffmpeg.org/ffm ...

  5. QT-Embedded-4.5.3在海思35xx上移植

    QT4.5.3在海思3520A上移植步骤-修订版 2015年3月29日星期日, 16:59:03 1.首先要保证已经安装了海思的交叉编译器: #arm-hi  + Tab key to show wh ...

  6. live555 交叉编译移植到海思开发板

    本文章参考了.http://blog.csdn.net/lawishere/article/details/8182952,写了hi3518的配置说明.特此感谢 https://blog.csdn.n ...

  7. FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台

    FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待   前言   将ffmpeg移植到海思H ...

  8. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    前言   移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持.   Ffmpeg的移植   Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...

  9. 海思3519A上移植OpenCV3.x

    环境安装与准备 下载opencv3.4.1. 或者 下载opencv3.2.0. 进入到opencv所在的目录新建目录build,install 安装cmake: apt-get install cm ...

随机推荐

  1. fensorflow 安装报错 DEPENDENCY ERROR

    1.错误信息 DEPENDENCY ERROR The target you are trying to run requires an OpenSSL implementation. Your sy ...

  2. DCL授权命令

    create user 用户名//创建用户    grant DBA to 用户名//授权    revoke //撤销权限

  3. HDU 4309 Contest 1

    最大流建图.开始以为旧桥有1000座,没敢用枚举,后来看看题目发现了只是十二座.枚举桥的状态没问题. 对于隧道的容量W,可以虚拟出第三个结点表示,如u->v.增加一个点p,u->p(INF ...

  4. HDU 4308 Contest 1

    纯BFS+优先队列扩展. #include <iostream> #include <cstdio> #include <cstring> #include < ...

  5. hdu Swipe Bo(bfs+状态压缩)错了多次的题

    Swipe Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  6. oracle 时间戳TIMESTAMP

    //数据库 UPDATETIMESTAMP TIMESTAMP(6) //dto /** 更新时间戳 **/ private String updatetimestamp; //dao //插入操作 ...

  7. 移动端 input光标问题 以及 监听输入

    1.  input 框光标问题: input框 在ios上显示的与Android是不一样的 显示是这样的 而且在输入的时候 光标位置变化了 是这样的 为了达到一致的效果 在行高加上\9     如:l ...

  8. 简易Servlet计算器1.0

    编写一个简易的Servlet计算器,暂时仅能实现 + - * / % 五种运算 jsp界面: <%@ page language="java" contentType=&qu ...

  9. Spring深入浅出(三)XML方式以及注解的方式操作IOC

    在日常的开发过程中,我们把程序分为3层:Controller层,Service层,DAO层.Controller类似于Servlet,也就是MVC中的控制层. 调用的顺序是: Controller层调 ...

  10. Codeforces 723D. Lakes in Berland

    解题思路: 1.dfs所有的水,顺便计数大小并判断是不是湖. 2.如果是湖,将大小和坐标存下来. 3.对湖按大小从小到大排序. 4.dfs前(湖的数量-k)个湖,用*填充这些湖. 代码: #inclu ...