Chinaunix首页 | 论坛 | 博客
  • 博客访问: 653319
  • 博文数量: 135
  • 博客积分: 5217
  • 博客等级: 大校
  • 技术积分: 1289
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-05 17:36
文章分类

全部博文(135)

文章存档

2016年(1)

2012年(5)

2011年(15)

2010年(63)

2009年(51)

分类: 嵌入式

2009-12-21 02:49:13


参考链接:
     
     
      http://www.wretch.cc.sixxs.org/blog/mywaterweed/22535556

在Ubuntu 9.10下编译了qt-ebedded 4.5.3版本的编译环境。

一 建立给PC的模拟运行开发环境
a)下载
cd
mkdir qt-em
cd  qt-em

wget ftp://ftp.qtsoftware.com/qt/source/qt-x11-opensource-src-4.5.3.tar.gz
wget ftp://ftp.qtsoftware.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz

b)解包
      tar xzvf qt-embedded-linux-opensource-src-4.5.3.tar.gz
      tar xzvf qt-x11-opensource-src-4.5.3.tar.gz

c)编译
cd qt-x11-opensource-src-4.5.3
 ./configure
 make
 sudo make install
 cd tools/qvfb
 make
 cd -
 sudo cp bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.3/bin
 安装后的位置是在:/usr/local/Trolltech/Qt-4.5.3

compiling:
  cd qt-embedded-linux-opensource-src-4.5.3
 ./configure -embedded -prefix
/usr/local/Trolltech/QtEmbedded-4.5.3 x86 -qvfb 
  make
  sudo make install
安装后的位置是在:/usr/local/Trolltech/QtEmbedded-4.5.3

 cd qt-embedded-linux-opensource-src-4.5.3
 cd tools/qvfb
 make
 cd -
 sudo cp bin/qvfb /usr/local/Trolltech/QtEmbedded-4.5.3/bin
 

Step 3:
create file as named set.env which include lines:
    export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.3
   export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3/bin:$PATH
   export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.3/lib:$LD_LIBRARY_PATH

每次编译时候要运行: . set.env 来改变环境

d)测试
   1
      cd /usr/local/Trolltech/Qt-4.5.3/demos/chip

    qvfb &

    ./chip -qws


   2
     cd /usr/local/Trolltech/QtEmbedded-4.5.3/demo/books
     qvfb -width 640 -height 480 &
     ./books -qws 

二 建立给开发版运行交叉编译程序环境

   安装交叉编译gcc/g++
   mkdir arm-tool
   cd arm-tool  
   wget
   chmod +x arm-2009q3-67-arm-none-linux-gnueabi.bin
   ./arm-2009q3-67-arm-none-linux-gnueabi.bin
   默认安在如下目录
   ~/CodeSourcery/Sourcery_G++_Lite/bin$
   cd ~/CodeSourcery/Sourcery_G++_Lite/bin$  
   创建文件:vi link.sh
   #!/bin/sh
   for i in  arm-none-linux-gnueabi-*
   do
      ln -sf $i  ./arm-linux-${i##*"arm-none-linux-gnueabi-"}
      echo  =./arm-linux-${i##*"arm-none-linux-gnueabi-"}=
   done
   chmod +x link.sh
   ./link.sh

 
   如果没有交叉编译器系统在如下编译时会提示找不到arm-linux-g++/gcc
  cd qt-em
  mkdir arm
  tar xzvf qt-embedded-linux-opensource-src-4.5.3.tar.gz -C arm
  cd arm
  vi set.env
  add below line in it
  export PATH=~/CodeSourcery/Sourcery_G++_Lite/bin:$PATH
  . set.env
  ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.3-arm -embedded arm -lrt

  如果在上面没有整link.sh就要改下面的文件:
  vim mkspecs/qws/linux-arm-g++/qmake.conf
        修改文件內的编译器设置,指定为当前的toolchain,
        默认內容如下:
        # modifications to g++.conf
        QMAKE_CC                = arm-linux-gcc
        QMAKE_CXX               = arm-linux-g++
        QMAKE_LINK              = arm-linux-g++
        QMAKE_LINK_SHLIB        = arm-linux-g++
        # modifications to linux.conf
        QMAKE_AR                = arm-linux-ar cqs
        QMAKE_OBJCOPY           = arm-linux-objcopy
        QMAKE_STRIP             = arm-linux-strip
        改为:
        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-linux-g++
        # modifications to linux.conf
        QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
        QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy
        QMAKE_STRIP             = arm-none-linux-gnueabi-strip

其它可选:
-confirm-license -little-endian -qt-mouse-tslib
-qt-mouse-tslib 是使用触控屏幕(要先用cross compiler build好arm版的tslib并放到target文件系统中)
  make
  sudo make install

安装到如下位置
/usr/local/Trolltech/QtEmbedded-4.5.3-arm

把这个编译好的QtEmbedded-4.5.0-arm拷贝到板子的root filesystem的/usr/local/Trolltech目录下

执行程序要设好如下环境变量:
$ export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm/
$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QPEDIR/lib
设置触控屏幕环境变量:
        $ export TSLIB_PLUGINDIR="/usr/lib/ts"
        $ export TSLIB_CALIBFILE="/etc/pointercal"
        $ export QWS_MOUSE_PROTO="tslib:/dev/input/event0"
        $ export POINTERCAL_FILE="/etc/pointercal"
        $ export TSLIB_CONFFILE='/etc/ts.conf'
        $ export TSLIB_TSDEVICE=/dev/input/event0

执行程序测试:
$ cd /usr/local/Trolltech/QtEmbedded-4.5.0-arm/demos/mainwindow
$ ./mainwindow -qws



阅读(5467) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~