Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211744
  • 博文数量: 93
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 978
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-10 15:46
个人简介

青春无悔

文章分类

全部博文(93)

文章存档

2015年(16)

2014年(77)

我的朋友

分类: LINUX

2014-11-10 17:17:44

前期工作:触摸屏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_pc
make

make 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库配置命令,并且进安装


点击(此处)折叠或打开

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


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


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


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


make && make install

安装下来的嵌入式Qt包大概有2.8GQt库大概是接近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\
-xplatform qws/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
  1. sh do_config
  2. make
  3. 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 -a mainwindow |grep "Share"
将程序与库文件与下载到开发板,设置开发板的环境变量


阅读(974) | 评论(0) | 转发(0) |
0

上一篇:aPM.SPI flash烧写

下一篇:linux在线升级

给主人留下些什么吧!~~