我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 2161|回复: 13

[技术文章] qt-5.6.0 for arm的移植

[复制链接]

7

主题

10

回帖

16

积分

一级逆天

积分
16

终身成就奖

QQ
发表于 2016-10-13 16:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

您需要 登录 才可以下载或查看,没有账号?立即注册

×
      移植是比较简单的,关键的问题在于裁剪。目前我没做裁剪优化。

     如果只需要基本模块,只要下载qtbase-5.6.0即可。
     (1)解压,我将其重命名为qtbase-5.6.0
     (2)编译ARM版的,所以选择linux-arm-gnueabi-g++,修改qtbase-5.6.0/mkspecs/linux-arm-gnueabi-g++/qmake.conf

#
# qmake configuration for building with arm-linux-gnueabi-g++
#

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linuxfb
QMAKE_CFLAGS_RELEASE   +=-O2 -march=armv5te

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = arm-linux-gnueabi-gcc
QMAKE_CXX               = arm-linux-gnueabi-g++
QMAKE_LINK              = arm-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = arm-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-linux-gnueabi-objcopy
QMAKE_NM                = arm-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-linux-gnueabi-strip
load(qt_config)
              QT5较QT4最大的不同就是取消了QWS,使用QPA替代,QT_QPA_DEFAULT_PLATFORM定义了默认情况下使用哪个,这里选择linuxfb,
              QMAKE_CFLAGS_RELEASE   做核版本配置,可以是armv5te、armv7xxx,不知道的可以不写。
             然后就是arm-linux-gnueabi-xxx 交叉编译工具链的名字修改
     (3)在qtbase-5.6.0下建立build目录,编译到此目录下
     (4)进入qtbase-5.6.0/build目录,创建一个编译脚本,名为buildqt5.sh(名字随便)
             #!/bin/bash

TSLIB=/home/ubuntu/tslib

CROSS=/home/ubuntu/external-toolchain
export PATH=$PATHCROSS/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATHCROSS/libTSLIB/lib
export LIBRARY_PATH=$LIBRARY_PATHCROSS/includeTSLIB/include

../configure \
    -release \
    -opensource -confirm-license \
    -shared \
    -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci \
    -no-sql-odbc -no-sql-psql -no-sql-sqlite -no-sql-sqlite2 -no-sql-tds \
    -no-qml-debug \
    -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 \
    -no-mips_dsp -no-mips_dspr2 \
    -no-pkg-config \
    -qt-zlib \
    -no-journald -no-syslog -no-gif \
    -no-libpng -qt-libjpeg -qt-freetype -no-harfbuzz \
    -no-openssl -no-libproxy \
    -no-xinput2 -no-xcb-xlib -no-glib \
    -no-xkbcommon-evdev -no-libinput \
    -nomake examples \
    -nomake tests \
    -no-compile-examples \
    -no-pulseaudio -no-alsa -no-gtkstyle \
    -gui -widgets \
    -no-nis -no-cups -no-iconv \
    -evdev -no-icu -no-fontconfig -strip \
    -no-pch -no-dbus \
    -tslib -I$TSLIB/include -L$TSLIB/lib \
    -force-asserts \
    -no-use-gold-linker \
    -no-xcb -no-kms -no-mirclient \
    -linuxfb -no-egl -no-eglfs -no-directfb -no-opengl \
    -xplatform linux-arm-gnueabi-g++ \
    -no-gstreamer -no-system-proxies \
    -prefix $(pwd)/../../qt5.6.0 -v

make && make install

            这里我考虑到以后需要用到触摸屏,所以把TSLIB加上。不需要数据库、opengl、xcb等等,当然有些默认是关闭的,可以在qtbase-5.6.0下./configure --help查看具体的选项。选择-linuxfb。这里需要注意的是-shared,若使用-static,用静态库去编译QT程序,可以,但是这样的程序不能使用QPA等插件了,linuxfb插件也不能加载了,程序也就运行不起来了。-prefix定义INSTALL到哪里
     (5) 添加执行权限,运行这个脚本。环境啊配置啊,都没问题的话,编译完成就会得到qtbase-5.6.0/../qt5.6.0,这就是需要的ARM版qtbase5.6.0
回复

使用道具 举报

  • 打卡等级:以坛为家II
  • 打卡总天数:292
  • 打卡月天数:0
  • 打卡总奖励:1073
  • 最近打卡:2026-07-29 14:00:33

25

主题

1990

回帖

2120

积分

二级逆天

积分
2120

终身成就奖社区居民

QQ
发表于 2016-10-13 21:09 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:534
  • 打卡月天数:21
  • 打卡总奖励:1615
  • 最近打卡:2026-09-24 09:31:22

43

主题

1万

回帖

7万

积分

三级逆天

积分
75168

终身成就奖特殊贡献奖原创先锋奖社区居民忠实会员社区劳模最爱沙发社区明星原创达人优秀斑竹奖宣传大使奖

QQ
发表于 2016-10-14 00:25 | 显示全部楼层
回复

使用道具 举报

20

主题

811

回帖

318

积分

二级逆天

积分
318

社区居民忠实会员终身成就奖

QQ
发表于 2016-10-14 10:58 | 显示全部楼层
回复

使用道具 举报

发表于 2017-6-4 09:49 | 显示全部楼层
回复

使用道具 举报

23

主题

136

回帖

294

积分

二级逆天

积分
294

终身成就奖

QQ
发表于 2017-6-7 09:06 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家II
  • 打卡总天数:296
  • 打卡月天数:0
  • 打卡总奖励:1004
  • 最近打卡:2025-11-21 08:44:52

2

主题

5394

回帖

1万

积分

三级逆天

积分
11579

终身成就奖特殊贡献奖原创先锋奖

QQ
发表于 2020-5-8 08:41 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家III
  • 打卡总天数:742
  • 打卡月天数:0
  • 打卡总奖励:2905
  • 最近打卡:2026-08-20 09:00:04

3

主题

9037

回帖

1万

积分

三级逆天

积分
13629

社区居民终身成就奖特殊贡献奖原创先锋奖

QQ
发表于 2020-6-3 08:52 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:初入少年
  • 打卡总天数:1
  • 打卡月天数:0
  • 打卡总奖励:2
  • 最近打卡:2024-12-05 18:05:06

32

主题

522

回帖

506

积分

二级逆天

积分
506

终身成就奖

发表于 2020-6-10 08:27 | 显示全部楼层
回复

使用道具 举报

  • 打卡等级:以坛为家II
  • 打卡总天数:296
  • 打卡月天数:0
  • 打卡总奖励:1004
  • 最近打卡:2025-11-21 08:44:52

2

主题

5394

回帖

1万

积分

三级逆天

积分
11579

终身成就奖特殊贡献奖原创先锋奖

QQ
发表于 2020-11-3 08:47 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请举报投诉

本站所有资料仅限参考学习交流,PCB原理图源码等所有资料不保证准确没问题,请不要用作生产。否则后果自负。

闽公网安备35062302000276号 | 闽ICP备2024076463号-1 | 论坛技术支持QQ群171867948 | 论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表