移植Qt5.7到4412开发板上(开发环境搭建)

转自:https://www.cnblogs.com/t1029901995/p/6046600.html

一、环境:

    系统:Ubuntu16.04   64位,

    开发板:讯为iTOP-4412精英版(4.7寸屏)

二、需下载的资源:    

    下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz 
     http://download.qt.io/archive/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.tar.xz

    下载ARM交叉编译工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 
     http://www.veryarm.com/arm-none-linux-gnueabi-gcc

    下载tslib1.4 
     http://vdisk.weibo.com/s/AcUHxOERV2k0?sudaref=www.baidu.com

三、移植

  1.安装arm-2014.05-29-arm-none-linux-gnueabi-gcc编译器

将下载的arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2解压到自己的安装目录,这里我选的是 /usr/local/arm 接下来就是修改环境,打开etc/profile

vi /etc/profile

使修改生效source /etc/profile

添加 

export PATH=$PATH:/usr/local/arm/arm-2014.05/bin
export CROSS_COMPILE=arm-none-linux-gnueabi-

保存后 更新下  source /etc/profile

控制台输入arm  按两下下table后如果出现arm-none-linux-gnueabi-gcc-4.8.3  说明可以了,也可以通过

arm-none-linux-gnueabi-gcc -v  这条命令测试,如果出现一大串字母 ,最后一行是gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)  ,那就没问题了。

  2.安装tslib1.4

将下载的tslib1.4解压到自己的目录 ,我选得是自己downloads文件夹 ,解压得到tslib1.4文件夹,在控制台进入这个文件夹,先安装一些东西,

sudo apt-get install autoconf

sudo apt-get install automake

sudo apt-get install libtool

安装完之后执行 

./autogen.sh
然后
./configure CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ --host=arm-none-linux-gnueabi  --prefix=/opt/tslib1.4 ac_cv_func_malloc_0_nonnull=yes
prefix是自己的安装目录,自己决定。
最后 
make
sudo make install
3. 编译Qt5.7的源码。
在自己的downloads文件夹解压得到的源码,

进入该文件夹,打开qtbase/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 = 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-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)

执行

./configure -release -opensource -tslib -xplatform linux-arm-gnueabi-g++ -prefix /opt/Qt-5.5.0/armv7-a -no-c++11 -no-opengl -I/opt/tslib1.4/include -L/opt/tslib1.4/lib

没有错误的话 就 make && make install

到安装文件夹下就出现了安装的文件

那就成功了。

嫌麻烦也可以下载已经编译好的qt,地址:https://download.csdn.net/download/qq_42009634/10755622,然后再设置一下开发环境就可以使用了。

3.安装qtcreator(也可以直接安装Qt5.7-linux版,里面就带有qtcreator)

qt5.7地址:http://download.qt.io/archive/qt/5.7/5.7.0/

设置开发环境,如下图

四 、程序测试。

将编译好的tslib1.4 和qt整个文件夹 拷贝到开发板的/opt目录,

修改开发板环境:vi /etc/profile

1

2

3

4

5

6

7

8

9

10

11

12

13

14

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

QT_ROOT是qt库的目录。更新 source /etc/profile

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

删除第二行前面的#就可以了,如果出错重新打开修改第二行,去掉空格和#

一切搞完之后就可以编写qt程序了,将编译后的程序用u盘复制到开发板,./program  就可以运行了,但十有八九会报错缺少libstdc++.so  所以要复制一个libstdc++.so到lib目录下。

五、安装过程的一些问题:

   qt编译时出现cannot find -lGL错误,参考https://blog.csdn.net/qq_42009634/article/details/83583559

   使用arm-none-linux-gnueabi-gcc -v 提示未找到文件,是因为缺少32位库,安装  lib32z1 或者 lib32ncurses5

使用命令 sudo apt-get install  lib32z1 或者 sudo apt-get install lib32ncurses5 安装  

猜你喜欢

转载自blog.csdn.net/qq_42009634/article/details/83584200