Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3426388
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: C/C++

2008-06-23 13:16:56

生成可执行文件并且在Virtual framebuffer上运行,测试Qt桌面环境
一个源代码文件要能够在开发板上运行,首先应能够在Virtual framebuffer上显示出来,然后通过交叉编译在开发板上运行.
生成可执行文件在qte中试验

这里我们采用了Qt/Embedded自带的一个demo,它在/$QTEDIR/examples/progressbar目录下,
这个目录包括下面几个文件: main.cpp、Makefile.in 、progressbar.h 、
Makefile、progressbar.cpp、progressbar.pro,如果已经有了progressbar 的执行文件,可以使用make clean删除。

设置环境变量
export TMAKEDIR=/root/qtopia/tmake-1.13
export TMAKEPATH=$TMAKEDIR/lib/qws/linux-x86-g++
export PATH=$TMAKEDIR/bin:$PATH
export QTEDIR=/root/qtopia/qt-2.3.10-host
export QTDIR=$QTEDIR
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

1.生成工程文件.pro
每个Qt程式都对应着一个工程文件,因为tmake工具要借此文件生成相应的Makefile文件提供给make进行编译联接.
生成工程文件需要使用progen工具,位置在tmake-1.13/bin下,使用progen生成工程文件的方法如下:
A. 进入含有源文件的目录.如:
cd /$QTEDIR/examples/progressbar

B. 运行progen工具生成.pro文件.如:
progen –t app.t –o progressbar.pro

( 因为设置了export PATH=$TMAKEDIR/bin:$PATH,所以可以直接用progen和下面的tmake命令)
注意:-o 选项是指定输出文件的文件名.比如上面的生成的工程文件名是progressbar.pro,生成的这个.pro文件是可以修改的,可以编辑里面的头文件HEADERS,文件来源SOURCE等.
2.生成Makefile文件
Qt提供了生成Makefile文件的工具tmake,在tmake-1.13/bin目录下,可以根据不同平台的需要生成适合于不同平台的Makefile文件.
在使用tmake工具前,应查看相应的环境变量是否正确,由于我们要编译在PC机上运行的Qt程式,所以指定的编译器应该是含有"linux-x86-g++",在命令行里键入命令检查环境变量是否正确.
echo $TMAKEPATH
查看返回的结果的结尾字符是否是"...../qws/linux-x86-g++",如果不是的话应该重新设置TMAKEPATH.
export TMAKEPATH=tmake的安装路径($TMAKEPATH)/lib/qws/linux-x86-g++
注意:TMAKEPATH是指定tmake的位置,比如我的tmake安装在/root/qtopia/ttmake-1.13下,我就设置TMAKEPATH为:
export TMAKEPATH=/root/qtopia/tmake-1.13/qws/linux-x86-g++

此外还要使QTDIR指向Qt/Embedded的安装路径,如:(这些工作已在环境变量设置中做了)
export QTDIR=$QTEDIR
或者直接指定路径
export QTDIR=/root/qtopia/qt-2.3.10-host
注意:因为我的Qt/Embedded安装在/root/qtopia/qt-2.3.10-host下,所以才是export QTDIR=/root/qtopia/qt-2.3.10-host
完成了上面的环境变量的设置,并用echo命令检查无误后,就可以使用tmake工具来生成我们需要的Makefile文件了,键入命令

tmake -o Makefile progressbar.pro

注意:-o选项是指定生成的Makefile文件名为Makefile,tmake是用前面progen生成的工程文件.pro来生成Makefile文件的.完成上面的步骤后就可以在当前目录里生成一个Makefile文件了.
3.使用LINUX系统自带的make来进行整个程式的编译联接
生成一个二进制的可执行文件progressbar
进入含有刚才tmake生成的Makefile文件的目录,键入命令make,如:我生成的Makefile文件放在/home/alpha/pro下,就:
cd /$QTEDIR/examples/progressbar
make
4.在Virtual framebuffer运行程式.
A.进入含有生成的二进制文件的目录
cd /$QTEDIR/examples/progressbar
B.运行qvfb来模拟Virtual framebuffer
qvfb -width 640 -height 480 &
C.在qvfb上加载二进制文件,运行程式.如:
./progressbar -qws

(因为设置了export PATH=$QTDIR/bin:$PATH,所以这里可以直接用qvfb命令)
注意:-width 640 -height 480是指定Virtual framebuffer模拟器的长为640橡素,宽为480像素.qvfb还有很多选项,详情请见qvfb --help命令.
如果没有选项,就直接用qvfb &

__________________
除了example中的progressbar.cpp文件
还可以用下面的源程序try一下
/***************************************************************************************************
*
* hello.cpp
*
***************************************************************************************************/
#include
#include
int main(int argc,char **argv)
{
QApplication app(argc,argv);
QLabel *hello=new QLabel("Hello World!",0);
app.setMainWidget(hello);
hello->show();
return app.exec();
}
就是把以上的progressbar改为hello就可以了
交叉编译
使编译的二进制文件可以在目标板上运行

环境变量的设置
[root@team root]# export TMAKEDIR=/root/2410s/tmake-1.13
[root@team root]# export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++
[root@team root]# export PATH=$TMAKEDIR/bin:$PATH


[root@team root]# export QTEDIR=/root/2410s/qt-2.3.10-arm
[root@team root]# cd $QTEDIR
[root@team 2410s]# export QTDIR=$QTEDIR
[root@team 2410s]# export PATH=$QTDIR/bin:$PATH
[root@team 2410s]# export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
[root@team 2410s]# export PATH=/usr/local/arm/2.95.3/bin:$PATH


注意: TMAKEPATH要设置为.../qws/linux-arm-g++
还要加一个export PATH=/usr/local/arm/2.95.3/bin:$PATH来说明交叉编译链的位置

其他的同host上的一样
阅读(1164) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~