2009年11月6日
luyued 发布于 2011-01-04 17:26 浏览 N 次在根新建目录wu2410,然后把所需的安装包下载到目录下,在终端进入目录下
4.1 tmake 安装
tar xfvz tmake-1.11.tar.gz
mv tmake-1.11 tmake
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
4.2 QT编译
tar xfvz qt-x11-2.3.2.tar.gz
mv qt-2.3.2 qt-x11
cd qt-x11
export QTDIR=$PWD
echo yes | ./configure -static -no-xft -no-opengl -no-sm
make -C src/moc
cp src/moc/moc bin
make -C src
make -C tools/designer
make -C tools/qvfb
cp tools/qvfb/qvfb bin
strip bin/uic bin/moc bin/designer bin/qvfb
4.3 QTE编译
tar xfvz qt-embedded-2.3.7.tar.gz
mv qt-2.3.7/ qt
cp qt-x11/bin/?* qt/bin
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
cd qt
make clean
cp ../qtopia/src/qt/qconfig-qpe.h src/tools/
(echo yes; echo yes ) |./configure -platform linux-generic-g++ -qconfig qpe -depths 16,24,32
make -C src
4.5 QPE编译
tar xfvz qtopia-free-1.7.0.tar.gz
mv qtopia-free-1.7.0 qtopia
#tar xfvz e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH
#./configure
#make
#make install lib/uuid/
将e2fsprogs-1.35/lib/目录下uuid的文件夹复制到qtopia/include下
将e2fsprogs-1.35/lib/中的libuuid.a复制到/qtopia/lib下
cd qtopia/src
./configure -platform linux-generic-g++
make
当在PC上模拟Qtopia的运行时,需要用到对应Qt版本的库文件,因此需要修改/etc/ld.so.conf 文件以适应刚刚安装的Qt(Redhat安装时带有Qt库,但不适合我们最新安装的版本),修改后的ld.so.conf文件内容如下:
/wu2410/qt/lib
/wu2410/qtopia/lib
/usr/kerberos/lib
/usr/X11R6/lib
/usr/lib/sane
修改完此文档后,为了让刚刚安装的库生效,必须运行ldconfig。 至此Qt的开发缓建已经建立
(1)设置环境变量
export QTDIR=$PWD/qt
export QPEDIR=$PWD/qtopia
export TMAKEDIR=$PWD/tmake
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-generic-g++
export PATH=$QTDIR/bin:$QPEDIR/bin:$TMAKEDIR/bin:$PATH
(2)启动虚拟帧缓存
qvfb &
或qvfb -width 640 –height 480 &
(3)运行qtopia
qpe &
=====================================================================
1. Prepare software and cross-compile toolchainxscalev1.tar.gz arm交叉编译工具链e2fsprogs-1.35.tar.gz 用于编译生成libuuid库tmake-1.11.tar.gz 生成makefileqt-embedded-2.3.7.tar.gz Qt/Embeddedqt-x11-2.3.2.tar.gz Qt/X11qtopia-free-1.7.0.tar.gz QtopiaSuppose that we save these software to /root/qt-arm2. Install toolchain这里使用的是xscale板子提供的交叉编译工具链cd /root/qt-armtar zxvf xscalev1.tar.gzmv xscalev1 /opt/vi ~/.bash_pro
3. Install tmaketmake用于交叉编译生成qt应用程序的makefile, 也可用于生成qt的本地makefile,区别在于设置TMAKEPATH路径的不同,一个用于arm,一个用于x86。注意:tmake 机子上本来就有的,但我们要使用11以上的版本,如果是11以上的版本可以不用安装。tmake –v 查看一下它的版本,有些版本比较老,建议换掉,同时把以前的tmake可执行文件删掉tmake使用:在某个qt工程文件夹内 qmake –project 生成工程文件 假定工程文件夹名hello tmake hello.pro –o Makefile 生成makefile make 编译连接成可执行文件 cd /root/qt-armtar zxvf tmake-1.11.tar.gzvi tmake-1.11/lib/qws/linux-arm-g++/tmake.conf TMAKE_LINK=arm-linux-g++ //将原来的arm-linux-gcc 改成 arm-linux-g++ TMAKE_LINK_SHLIBS=arm-linux-g++mv tmake-1.11 /usr/local/vi ~/.bash_pro
将qt-2.3.7/lib 目录下载到板子上/usr/local/qt-embedded/目录下将qtopia-free-1.7.0目录下的文件(要做一些裁减工作,把不必要的文件删除)下载到/usr/local/qtopia目录下Minicom 登陆到开发板上下载步骤略export LD_LIBRARY_PATH=/usr/local/qt-embedded/lib:$LD_LIBRARY_PATHexport LD_LIBRARY_PATH=/usr/local/qtopia/lib:$LD_LIBRARY_PATHcd /usr/local/qtopia/bin./qpe –qws & 运行qpe程序,移植成功 9.2 running application through nfs
首先我们的pc机要开启nfs服务,详见开发板网络配置文档Pc机:vi /etc/exports / *(rw, no_root_squalsh)/etc/rc.d/init.d/nfs start 开启nfs服务netstat –au 查看是否开启nfs服务,如果没有查看防火墙 开发板:Minicom登陆到班子上mount –t nfs –o tcp 192.168.1.22:/root/qt-arm /mnt/qt-armcd /mnt/qt-armcd qt-2.3.7export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATHcd ../qtopia-free-1.7.0export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATHcd bin./qpe –qws 运行qpe程序,移植成功附件1:触摸屏修改程序class QCustomTPanelHandlerPrivate : public QWSMouseHandler {Q_OBJECTpublic: QCustomTPanelHandlerPrivate(MouseProtocol, QString dev); ~QCustomTPanelHandlerPrivate();private: int mouseFD; unsigned char prevstate;private slots: void readMouseData();};QCustomTPanelHandlerPrivate::QCustomTPanelHandlerPrivate( MouseProtocol, QString ){#ifdef QWS_CUSTOMTOUCHPANEL if ((mouseFD = open( "/dev/ts", O_RDONLY)) <0) { qWarning( "Cannot open /dev/ts (%s)", strerror(errno)); return; } else { sleep(1); } QSocketNotifier *mouseNotifier; mouseNotifier = new QSocketNotifier( mouseFD, QSocketNotifier::Read, this ); connect(mouseNotifier, SIGNAL(activated(int)),this, SLOT(readMouseData()));#endif}QCustomTPanelHandlerPrivate::~QCustomTPanelHandlerPrivate(){ if (mouseFD >= 0) close(mouseFD);}struct CustomTPdata { unsigned char status; unsigned short xpos; unsigned short ypos;};void QCustomTPanelHandlerPrivate::readMouseData(){ if(!qt_screen) return; CustomTPdata da
}
========================================================================================
准备以下源码包和文件(可以从网上下载)
tmake-1.11.tar.gz
qt-embedded-2.3.7.tar.gz
qt-x11-2.3.2.tar.gz
qconfig-local.h
假设源码包放在/home/build_qte/目录下
cd /home/build_qte/
1 tmake 配置
tar zxvf tmake-1.11.tar.gz ; 解压tmake源码包
cd tmake-1.11 ; 进入解压目录
vi env.sh ; 建立shell文件,在文件中添加如下内容
export TMAKEDIR=$PWD
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export PATH=$TMAKEDIR/bin:$PATH
保存退出.
source env.sh ; 添加环境变量
cd .. ; 退出tmake-1.11目录
2 配置编译qt-embedded源码包
tar zxvf qt-embedded-2.3.7.tar.gz
mv qt-2.3.7 qt-2.3.7-x86
cd qt-2.3.7-x86
cp /home/build_qte/qconfig-local.h src/tools/ ; qconfig-local.h文件在开发板提供的光碟上可以找到
vi env.sh ;添加如下内容
export QTDIR=$PWD
export QTEDIR=$QTDIR
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PATH=$QTDIR/bin:$PATH
;保存退出.
source env.sh ; 添加环境变量
./configure -qconfig local -gif -thread -qvfb -depths 4,8,16,32 ;配置源码包
make sub-src ;编译
cd ..
3 配置编译qt-x11源码包
tar zxvf qt-x11-2.3.2.tar.gz
cd qt-2.3.2
export QTDIR=$PWD
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
./configure -no-xft -no-opengl
make
make -C tools/qvfb
cp tools/qvfb/qvfb $QTEDIR/bin/
cp bin/uic $QTEDIR/bin
cd ..
; 退出终端!
4 实例
; 建立qte开发的工作目录
mkdir /home/qte
cd /home/qte
; 建立shell文件,设置环境变量
vi set-qte-x86.sh
; 在文件中添加如下
#!/bin/bash
export QTDIR=/home/build_qte/qt-2.3.7-x86 ;编译qt-2.3.7的目录
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export TMAKEDIR=/home/build_qte/tmake-1.11 ;tmake-1.11的目录
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export PATH=$QTDIR/bin:$TMAKEDIR/bin:$PATH
echo $PATH
; 保存退出
; 先不要执行source set-qte-x86.sh (不要设置环境变量)
; 建立工程目录
mkdir hello
cd hello
; 用designer生成工程文件(hello.pro), 窗体文件(hello.ui), 和main.cpp文件.
progen -n hello -o hello.pro
cd ..
source set-qte-x86.sh ;设置环境变量
cd hello
; 生成源文件
uic hello.ui -o hello.h
uic hello.ui -i hello.h -o hello.cpp
删除hello.pro, hello.ui文件, 省下hello.h, hello.cpp, main.cpp三个文件
progen -o hello.pro ; 生成工程文件
tmake hello.pro -o Makefile ; 生成Makefile文件
make ;开始编译
; 在PC机的模拟执行
qvfb &
; 新建终端, 在新建的终端中执行如下
cd /home/qte
source set-qte-x86.sh
cd hello
./hello -qws ; 执行刚才编译的hello.
- 07-01· 北凉国的那些事(组诗)
- 07-01· 《乱世佛音》 第七章 巨变
- 07-01· 南匈奴始末(3)
- 06-30· 流浪在波希米尼亚
- 06-30· 希尼亚从大洋西岸放飞新
- 06-28· 瑪利亞之城 - 家庭日 "光
- 06-28· 至青年营弟兄姐妹的一封
- 06-26· 《三国群英大富翁》追忆
- 06-24· 东莞血汗工厂实录(281:沙田
- 06-22· 第一次看戏
- 06-22· 经典复刻,独一无二:试
- 06-22· 蓝旗营教学中心9月份盛大
- 06-22· 品牌折扣女装嫣然品牌折
- 06-21· IQVopdnkvdz 1100
- 06-21· kriyoylto8fyds'p;tyijyfuifiogoi
- 06-21· 巴黎春天缤纷圣诞 喜迎新
- 06-21· 晒JS宝宝贝贝些 咯
- 06-21· 司马氏的谥法和葬仪
- 06-21· [转载]司马氏的谥法和葬仪
- 06-21· 闲来蓟县看秋山