Qt4.8.7 移植到海思3520D

  1. 配置交叉编译器
  2. 编译Qt4.8.7的源码库

    1. 进入qt-everywhere-opensource-src-4.8.6/mkspecs/目录,复制linux-arm-g++目录为linux-arm-hisiv100-g++
    2. 进入linux-arm-hisiv100-g++,修改文件qmake.conf
    3. 修改如下,即将其中所有的arm-linuxarm-hisiv100nptl-linux

      
      # modifications to g++.conf
      
      
      QMAKE_CC               = arm-hisiv100nptl-linux-gcc
      
      QMAKE_CXX             = arm-hisiv100nptl-linux-g++
      
      QMAKE_LINK            = arm-hisiv100nptl-linux-g++
      
      QMAKE_LINK_SHLIB      = arm-hisiv100nptl-linux-g++
      
      
      # modifications to linux.conf
      
      
      QMAKE_AR                = arm-hisiv100nptl-linux-ar cqs
      
      QMAKE_OBJCOPY          = arm-hisiv100nptl-linux-objcopy
      
      QMAKE_STRIP             = arm-hisiv100nptl-linux-strip
      
    4. 打开文件qplatformdefs.h增加

      
      #undef O_CLOEXEC
      
      此处主要为解决:编译过程中找不到accept4函数问题(undefined reference to ‘accept4’)
    5. 编写compile.sh脚本

      ./configure --prefix=./qt_3520D -static -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-arm-hisiv100-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools

    注意:–prefix=./qt_3520D -xplatform qws/linux-arm-hisiv100-g++ 两个选项需要自定义

    最后, 进行 make ;make install


遇到的问题:
1. 一个海思的0xA00F8010 HI_ERR_VO_SYS_NOTREADY 系统未初始化报错。一但报错,就是代码没有被执行。那就有可能是库没有被正确的链接。

报错,如果不是内存溢出等段错误,那就是没有干什么事,为什么没有做什么事,因为没有调用一些代码段。可能是动态库,没有被正确加载,调用。
这时候,只需要将正确的库加载到正确的位置上即可。
2. QFontDatabase error

# ./gui_test -qws
QFontDatabase: Cannot find font directory /home/xstrive/opt/Qt_ARM_static/qt-everywhere-opensource-src-4.8.7/qt_3520D/lib/fonts - is Qt installed correctly?

此时是因为找不到 字体库 fonts 的位置,需要设置 QT_QWS_FONTDIR 变量的值。export QT_QWS_FONTDIR=$QTDIR/lib/fonts

祝好运 滑稽

原文:详解 Qt 选择性编译和库裁减
推荐阅读:Cross-Compiling Qt for Embedded Linux Applications

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值