arm-linux-gnueabihf 4.8.3,qt4.8.3移植

前期工作:触摸屏stlib-master移植

tar xzvf qt-everywhere-opensource-src-4.8.3.tar.gz -C ../006.qt/

解压3份(分别是PC本机/ARM体系/X86体系):

qiuweibo@ME-BS1:~/workspace/003.aPM.MPU/006.qt/002.source$ ls

qt-4.8.3-arm  qt-4.8.3-pc  qt-4.8.3-x86

1.编译PC版本:

./configure -prefix /home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_pcmakemake install

-prefix后面的是安装目录,根据需要修改。

错误1:

The specified system/compiler is not supported:

解决措施:

得知看下环境变量,于是乎,终端输入export,终于明白是哪里出错了:

QMAKESPEC=/xxx/xxxx/xxx/xxx这个环境变量指定的目录根本就不是我的qt源码所在的目录,就重新设一下该环境变量:

export QMAKESPEC=/home/qiuweibo/workspace/003.aPM.MPU/006.qt/002.source/qt-4.8.3-pc/mkspecs/linux-g++

重新./configure  指定目录,OK!

2.进入qt-4.8.3-x86目录

输入编译嵌入式Qt库配置命令,并且进安装

点击(此处)折叠或打开

./configure -prefix /home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_pc

make

make install

./configure -prefix /home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_pc

make

make install

./configure -prefix /home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_pc

make

make install

./configure -prefix /home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_pc

make

make install

make && make install

安装下来的嵌入式Qt包大概有2.8G,Qt库大概是接近1G。

3.编译嵌入式版本

进入qt-4.8.3-arm目录,输入编译嵌入式Qt库配置命令,并且进安装

1.修改环境变量

export QMAKESPEC=/home/qiuweibo/workspace/003.aPM.MPU/006.qt/002.source/qt-4.8.3-arm/mkspecs/linux-g++

2.指定交叉编译器:

cp -fr mkspecs/qws/linux-arm-g++mkspecs/qws/linux-am335x-g++

vi   mkspecs/qws/linux-am335x-g++/qmake.conf

编辑qmak.conf,将“arm-linux”更改为

"arm-linux-gnueabihf“,并增加参数“lts”

到四个选项,如下所示:

$ cat qmake.conf

#

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

#

include(../../common/linux.conf)

include(../../common/gcc-base-unix.conf)

include(../../common/g++-unix.conf)

include(../../common/qws.conf)

# modifications to g++.conf

QMAKE_CC                =arm-linux-gnueabihf-gcc -lts

QMAKE_CXX               =arm-linux-gnueabihf-g++ -lts

QMAKE_LINK              =arm-linux-gnueabihf-g++ -lts

QMAKE_LINK_SHLIB        =arm-linux-gnueabihf-g++ -lts

# modifications to linux.conf

QMAKE_AR                =arm-linux-gnueabihf-ar cqs

QMAKE_OBJCOPY           =arm-linux-gnueabihf-objcopy

QMAKE_STRIP             =arm-linux-gnueabihf-strip

load(qt_config)

3.建立shell配置脚本如下:

具体参数,查看./configure -help

$ cat do_config

#!/bin/bash

# Add by QWB

./configure\

-qtlibinfix E\

-prefix/home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_arm\

-opensource\

-confirm-license\

-embedded arm\

-xplatformqws/linux-am335x-g++\

-little-endian\

-host-little-endian\

-fast\

-shared\

-no-qt3support\

-no-phonon -no-phonon-backend\

-qt-zlib\

-no-gif\

-no-libtiff\

-no-qvfb\

-qt-libjpeg\

-no-nis\

-no-opengl\

-no-cups\

-no-webkit\

-no-glib\

-no-dbus\

-no-rpath\

-no-mmx -no-3dnow\

-no-sse -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2\

-no-avx -no-neon\

-no-audio-backend\

-no-svg\

-no-javascript-jit\

-no-script\

-no-scripttools\

-no-multimedia\

-no-openssl\

-nomake tools\

-qt-mouse-tslib\

-I/home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/tslib/include\

-L/home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/tslib/lib

sh do_config

make

make install

-qtlibinfix Renames all libQt*.so to libQt*.so.

至此,编译已完成,剩下就是移植到开发板和配置环境变量

$ du -sh *

76M     install_arm

399M     install_pc

141M     install_x86

360K     tslib

4.完成编译和安装后需要对系统(PC)的环境变量进行设置,才能编译自己的程序

vim  setARMenv.sh

#!/bin/sh

export  QTEDIR=/home/liuc/qtenv/qt-4.8.2-arm:$QTEDIR

export  PATH=/home/liuc/qtenv/qt-4.8.2-arm/bin:$PATH

export  LD_LIBRARY_PATH=/home/liuc/qtenv/qt-4.8.2-arm/lib: LD_LIBRARY_PATH

注意:以上目录是你安装qt库的路径。

5.移植库到开发板

1)虚拟机里编译安装arm版的Qt库在你的安装目录下,如:

/home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/install_arm/lib下,在install_arm/目录执行下面的命令打包,方便以后移植使用

tar  zcvf  lib.tar.gz  lib/

2)移植到开发板

最好是跟你在虚拟机里面的arm版Qt所在目录一样,方便操作!

在开发板下新建目录:/opt/Qt

把lib.tar.gz解压到此目录,lib目录下包含库和字体。

2.安装成功后,这步非常关键,一定要设置环境变量

在开发板的根目录下执行:

$ vi /etc/profile

然后输入

# Add by QWB 2014.5.20 for QT Start

export QTDIR=/opt/Qt:$QTDIR

export LD_LIBRARY_PATH=/opt/Qt/lib:$LD_LIBRARY_PATH

export QT_QWS_FONTDIR=/opt/Qt/lib/fonts

# Add by QWB 2014.5.20 for QT End

保存退出!

3.准备tslib文件,使触摸屏工作

把虚拟机/home/qiuweibo/workspace/003.aPM.MPU/006.qt/001.install/tslib目录下的文件拷贝到开发板上的/home/liuc/qtenv/tslib,没有的话自己建个文件。

修改触摸屏配置文件

3.1环境变量

为了实现Tslib的正确运行,需要对如下的Tslib的环境变量进行配置:

设置环境变量如下:(或者写成shell形式)

# Add by QWB 2014.5.20 for Tslib Start

export T_ROOT=/opt/tslib/

export LD_LIBRARY_PATH=/opt/tslib/lib:$LD_LIBRARY_PATH

export TSLIB_CONSOLEDEVICE=none

export TSLIB_FBDEVICE=/dev/fb0

export TSLIB_TSDEVICE=/dev/input/event0

export TSLIB_PLUGINDIR=$T_ROOT/lib/ts

export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf

export POINTERCAL_FILE=/etc/pointercal

export TSLIB_CALIBFILE=/etc/pointercal

#umount follow support touchscreen

#export QWS_MOUSE_PROTO=tslib:/dev/input/event0

#umount follow support mouse

#export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice

#umoun tfollow support both touchscreen and mouse

export set QWS_MOUSE_PROTO="TSLIB:/dev/input/event0 Intellimouse:/dev/input/mice"

# Add by QWB 2014.5.20 for Tslib End

或者也写在/etc/profile里面.

3.2

(1)支持触摸屏

在对触摸屏校准以后,可以执行以下命令来支持触摸屏:

export QWS_MOUSE_PROTO=Tslib:/dev/input/event0

(2)支持鼠标

export QWS_MOUSE_PROTO=MouseMan:/dev/input/mice

(3)同时支持触摸屏和鼠标

export set QWS_MOUSE_PROTO="TSLIB:/dev/input/event0 Intellimouse:/dev/input/mice"

然后执行测试程序./am3359  -qws

就可以看到Qt界面出现了

运行程序

./Monitor -qws

原来Qt的运行需要有一个Qt的服务进程,添加-qws后就是把当前Qt程序当作server了

查看程序所需动态库如下:

$ arm-linux-gnueabihf-readelf -amainwindow|grep "Share"

将程序与库文件与下载到开发板,设置开发板的环境变量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值