Qt之移植Qt5.5到arm开发板

前面安装Qt的步骤就不说了,下载好一路next就可以了,接下来

1、首先要移植Qt必须要用到Qt的源码,在这里也是用Qt5的源码来移植。

源码可以在http://download.qt.io/archive/qt/下载,我选择文件qt-everywhere-opensource-src-5.5.0.tar.gz下载。2、把下载好的文件放在ubutun的/opt/Qt5.5/目录下,执行命令 tar -zxvf qt-everywhere-opensource-src-5.5.0.tar.gz 来解压,解压完成后就会看到 qt-everywhere-opensource-src-5.5.0 目录。 
3、接着就是开始进行编译的工作了。首先进去目录/opt/Qt5.5/qt-everywhere-opensource-src-5.5.0/qtbase/mkspecs/linux-arm-gnueabi-g++ ,在这个目录下回看到qmake.conf文件,我们需要修改这个文件。 输入命令vim qmake.conf


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

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linux 
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a     // march是处理器架构,我的是armv7-a
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

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


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

# modifications to linux.conf
QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           =arm-none-linux-gnueabi-objcopy
QMAKE_NM                = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-none-linux-gnueabi-strip
load(qt_config)

如果这里.对芯片的指令集没有选择好

QT_QPA_DEFAULT_PLATFORM = linux 
QMAKE_CFLAGS_RELEASE += -O2 -march=armv7-a 
QMAKE_CXXFLAGS_RELEASE += -O2 -march=armv7-a

在开发板运行过程中,运行有提示: 

Illegal instruction (非法指令) 

这里要注意,每个人的交叉编译器的前缀都是不一样的,我 的就是arm-none-linux-gnueabi-,需要注意

还有就是如果你有多个交叉编译器,那么这里你要设置为绝对路径

然后去解压目录下,即是/opt/Qt5.5/qt-everywhere-opensource-src-5.5.0/,每个人存放的目录都不要,这里我是直接运行

./configure \
-v \
-prefix /opt/qt5.5/arm_qt_5.5 \
-release \
-opensource \
-make libs \
-xplatform linux-arm-gnueabi-g++ \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-tslib \
-no-opengl \
-no-dbus \
-no-sse2 \
-no-openssl \
-no-cups \
-no-glib \
-no-iconv \
-no-largefile \
-nomake tools \
-nomake examples \
-nomake tests \
-qt-libjpeg \
-skip qt3d \
-skip qtcanvas3d \
-skip qtpurchasing \
-skip qtvirtualkeyboard \
-no-accessibility \
-no-separate-debug-info 

最后将生成的目录移动到开发板,

export QT_ROOT=/opt/qt-5.5
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins/
export QT_QWS_FONTDIR=$QT_ROOT/lib/fonts
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:offset=0x0:tty=/dev/tty1
export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event0:inverty

配置开发板/etc/profile的Qt环境变量,每个人的都不一样,仅供参考

这样开发板的就完成了。

二、设置Qt Creator的环境变量

①:工具->选项->构建和运行->编译器里面点击添加,选择自己交叉编译器的arm-none-linux-gnueabi-g++的路径


 

②、Qt Version里添加,选择之前源文件生成的目录的bin下的qmake

③、Kit里添加,然后编辑自己想要的名称,编译器选择交叉编译,Qt版本选择自己刚才设置的

这样就配置完成了,编辑程序去arm开发板运行就可以了

但是这样你是不支持中文的,如果你需要支持中文

我用的是文泉驿,你们需要先下载文泉驿的ttf,http://wenq.org/wqy2/index.cgi

然后将.ttf文件放置开发板的指定目录,我的是/opt/fonts/wqy/wqy-microhei.ttf,然后在Qt程序里面指定这个目录,

int id = QFontDatabase::addApplicationFont("/opt/fonts/wqy/wqy-microhei.ttf");
QString msyh = QFontDatabase::applicationFontFamilies(id).at(0);
QFont font(msyh, 10);
font.setPointSize(20);
a.setFont(font);

这样就可以显示中文字体啦,其实没有只要将fonts目录加入系统变量中就可以

 

  • 1
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值