移植QT5.7到嵌入式ARM

转载地址:点击打开链接

转载版本 未通过编译 ,可使用以下修改过的版本编译通过,此版本很多东西为编译 


交叉编译QT库

将下载的qt-everywhere-opensource-src-5.7.0.tar.gz执行如下命令解压:

tar -vxf qt-everywhere-opensource-src-5.7.0.tar.gz
cd qt-everywhere-opensource-src-5.7.0
  • 1
  • 2
  • 3

修改交叉编译架构用到的信息:

gedit qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
  • 1
  • 2

修改如下图所示:将arm-linux-gnueabi-改成海思的编译器 

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

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

QT_QPA_DEFAULT_PLATFORM = linux #eglfs
QMAKE_CFLAGS_RELEASE += -O2 -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-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)

configue配置 :

./configure         -prefix /opt/Qt5.7.0         -confirm-license         -opensource         -static         -release         -xplatform linux-arm-gnueabi-g++              -qt-libjpeg         -no-opengl         -no-xcb         -no-largefile         -no-accessibility         -no-sse2         -nomake tests         -nomake examples              -nomake tools         -no-openssl         -no-nis         -no-cups         -no-dbus         -no-sql-sqlite         -skip qt3d         -skip qtactiveqt         -sk     ip qtandroidextras         -skip qtcanvas3d         -skip qtcharts         -skip qtconnectivity         -skip qtdatavis3d         -skip qtdeclarative         -skip qtdo     c         -skip qtgamepad



上述命令自动生成Makefile文件。 
执行命令启动编译:

    make  -j5
  • 1
  • 2

编译大概四十分钟 
编译结束后,执行安装命令:

    sudo make install
  • 1
  • 2

将/opt/arm-qt 和/opt/tslib1.4 拷贝到开发板的文件系统中对应的目录中。

设置QT的交叉编译环境

安装qtcreator 
进入qtcreator开发环境 
在菜单中选择Tools——Options,在弹出的对话框中,选择Build & Run,选择标签Compilers,按下图设置,选择C++交叉编译器,如下图所示:

切换到Qt Versions标签,点击“Add”按钮,选择qmake,如图所示:

选择完成,按“OK”按钮,设置如图所示: 
切换到Kits标签,点击“Add”按钮,然后设置如下图所示:

在4412开发板上配置tslib并交叉编译一个能够在4412开发板上运行的QT应用程序

把字库Ubuntu_L.ttf 等字库拷贝到 /opt/arm-qt/lib/fonts

在开发板串口命令窗口中输入:

vi /etc/profile
  • 1
  • 2

将其修改为以下内容:

export TSLIB_ROOT=/opt/tslib1.4
export QT_ROOT=/opt/qt-5.7.0   
export TSLIB_TSDEVICE=/dev/input/event2
export TSLIB_TSEVENTTYPE=input         
export TSLIB_CONFFILE=/opt/tslib1.4/etc/ts.conf
export TSLIB_PLUGINDIR=/opt/tslib1.4/lib/ts    
export TSLIB_CONSOLEDEVICE=none                
export TSLIB_FBDEVICE=/dev/fb0             
export QWS_MOUSE_PROTO=tslib:/dev/input/event2
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib:$TSLIB_ROOT/lib:$TSLIB_ROOT/lib/
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins                                              
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0                                                      
export QT_QPA_FONTDIR=$QT_ROOT/lib/fonts           
export QT_QPA_GENERIC_PLUGINS=tslib
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

保存退出,执行命令(一定要执行,否则可能报错):

source /etc/profile
  • 1
  • 2

然后在串口命令窗中输入 vi /opt/tslib1.4/etc/ts.conf 来配置触摸屏

把第二行的注释去掉,把ts设置成输入模式(注意把前面的空格也去掉)

将编译得到的可执行文件拷贝到开发板中文件系统的/bin目录,运行该程序。

注意:不用开发板的触摸屏输入设备不一样,如tiny4412是dev下的1-wire字样的输入设备。需要修改TSLIB_TSDEVICE。


你可能感兴趣的:(嵌入式,qt)